Ktorを使えばWebアプリケーション、HTTPサービス、モバイルアプリ、ブラウザアプリケーションといったネットワーク接続アプリケーションを簡単に構築できます。 モダンなネットワーク接続アプリケーションはユーザに最適な体験を提供するため非同期である必要があり、Kotlinコルーチンはこれを簡単かつ直接的な方法で解決する素晴らしい手段です。
まだまだ道のりは遠いですが、Ktorのゴールはネットワーク接続アプリケーション用のMultiplatformアプリケーションフレームワークになることです。
現在、JVMクライアントとJVMサーバーをサポートしており、また、Javascript, iOS, Androindクライアントも同様にサポートしています。 また、サーバー・クライアントの機能をNativeにおいても利用できるようにしているところです。
目次:
あなたはKtorプロジェクトをMavenや Gradleやstart.ktor.ioやIntelliJ Pluginを使ってセットアップできます。
なお、IntelliJプラグインの場合start.ktor.io同様にKtorプロジェクトを作れるだけでなく、IDEとの統合のための便利な追加部分もあります。
それで終わりです。新しいプロジェクトが作成され、IDEにより開かれます。
Ktorによる単純なHello Worldプログラムは以下のようになります。
/demo
へのGET requestで、HELLO WORLD!
というメッセージが返信されます。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行目で指定している番号)番ポートから別のポートに必要に応じて変えることができます。
この時点であなたはとても単純なWebのバックエンドを動作させており、変更を加えることでその結果をあなたのブラウザ上で見ることができます。
applicationプラグインとmainClassName
フィールドでGradleプロジェクトの設定を済ませていれば、
ターミナルから./gradlew run
コマンド(Linux/Macの場合。Windowsはgradlew run
)でも起動することができます。