Ktor入門
はじめに
普段はサーバーサイドKotlinの開発をしています。 そこではSpring Bootを使った開発をしているのですが 別のフレームワークを試してみようと思い、Ktorに入門してみます。
Ktorとは
jp.ktor.work Kotlinで実装されたフレームワークです。 Spring BootはJavaで実装されたものなのでKotlin製のものを使いたい時の選択肢に入ってくるものかなと 思います。
環境設定
公式によれば、以下の方法でセットアップができるとのこと。 * Maven * Gradle * start.ktor.io * InteliJ Plugin
ここではstart.ktor.ioを使って、雛形を作成し、inteliJ IDEAで実装をすすめる流れを想定して 書きます。
start.ktor.io
こちらにアクセスするとプロジェクトの雛形ができる類のものです。 (Springのspring initializr相当のものかな) start.ktor.io
みた感じだとServerとしての機能としてどのテンプレートを使うかとか clientツールとして何を使うかみたいなものを、選びやすくしているところが Spring initizlizrと違うところかなと。
設定はこのような感じで作成してみます。
ここでBuildボタンを押すことで必要な雛形をダウンロードできます。 これを適当な場所においてinteliJ IDEAでopenします。 これで開発準備は完了です。
※### 用語について start.ktor.ioページにでてくるFeatureとはライブラリの依存性にあたるものと思われます。 こちらに言及あり。
※この部分
まずはHello
ここでは単純なAPIを作ってみたいと思います。 こちらを参考にします。 jp.ktor.work
初期状態でsrc配下にApplication.ktができています。
コード
package com.example import io.ktor.application.* import io.ktor.response.* import io.ktor.routing.* fun main(args: Array<String>): Unit = io.ktor.server.netty.EngineMain.main(args) @Suppress("unused") // Referenced in application.conf @kotlin.jvm.JvmOverloads fun Application.module(testing: Boolean = false) { // ここを実装しました routing { get("test") { call.respondText("OK") } } }
実行
mainメソッドがあるのでApplication.ktを実行します。
結果
簡単ではありますがGETするAPIができました。
curl http://localhost:8080/test OK
まとめ
ソースはこちらに。 github.com
参考
まずは公式のクイックスタート jp.ktor.work