クイックスタート

Estimated reading time: 1 minute

Ktor logo

Ktorを使えばWebアプリケーション、HTTPサービス、モバイルアプリ、ブラウザアプリケーションといったネットワーク接続アプリケーションを簡単に構築できます。 モダンなネットワーク接続アプリケーションはユーザに最適な体験を提供するため非同期である必要があり、Kotlinコルーチンはこれを簡単かつ直接的な方法で解決する素晴らしい手段です。

まだまだ道のりは遠いですが、Ktorのゴールはネットワーク接続アプリケーション用のMultiplatformアプリケーションフレームワークになることです。

現在、JVMクライアントとJVMサーバーをサポートしており、また、Javascript, iOS, Androindクライアントも同様にサポートしています。 また、サーバー・クライアントの機能をNativeにおいても利用できるようにしているところです。

目次:

Ktorプロジェクトのセットアップ

あなたはKtorプロジェクトをMavenGradlestart.ktor.ioIntelliJ Pluginを使ってセットアップできます。

なお、IntelliJプラグインの場合start.ktor.io同様にKtorプロジェクトを作れるだけでなく、IDEとの統合のための便利な追加部分もあります。

1) 最初のステップとして、プロジェクトを作成するための設定をし、インストールする機能を選択します

2) 次のステップとして、プロジェクトのアーティファクトの設定をします

それで終わりです。新しいプロジェクトが作成され、IDEにより開かれます。

Hello World

Ktorによる単純なHello Worldプログラムは以下のようになります。

Ktor Hello World

  1. ここに普通のMainメソッドを定義します
  2. 次にNettyを使った組み込みサーバをバックエンドとして作成し、8080番ポートをリッスンするようにします。
  3. ブロックで所定のパスやHTTPメソッドを指定した上で、Routing機能をインストールします。
  4. 実際のルーティングはこの場合/demoへのGET requestで、HELLO WORLD!というメッセージが返信されます。
  5. 実際にサーバーを起動し、接続を待ちます
Main.kt
import io.ktor.application.*
import io.ktor.http.*
import io.ktor.response.*
import io.ktor.routing.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*

fun main(args: Array<String>) {
    val server = embeddedServer(Netty, port = 8080) {
        routing {
            get("/") {
                call.respondText("Hello World!", ContentType.Text.Plain)
            }
            get("/demo") {
                call.respondText("HELLO WORLD!")
            }
        }
    }
    server.start(wait = true)
}

アプリケーションへのアクセス方法

mainメソッドがあるなら、IDEでそれを実行することができます。 そうすることでHTTPサーバーが起動され、http://127.0.0.1:8080がリッスンされます。 あなたのお気に入りのブラウザでそのアドレスを開くことができます。

もしうまくいかなければ、あなたのPC内でそのポートをすでに使っているかもしれません。 8080(上のコード例の10行目で指定している番号)番ポートから別のポートに必要に応じて変えることができます。

Ktor Hello World Browser

この時点であなたはとても単純なWebのバックエンドを動作させており、変更を加えることでその結果をあなたのブラウザ上で見ることができます。

applicationプラグインとmainClassNameフィールドでGradleプロジェクトの設定を済ませていれば、 ターミナルから./gradlew runコマンド(Linux/Macの場合。Windowsはgradlew run)でも起動することができます。

関連記事