Ktorを使う話
はじめに
この記事は、Prolab Advent Calendar 2017の10日目の記事として書かれています。
アドベントカレンダー書きます
— ゲ・ドリンク (@gedorinku) 2017年12月9日
23時くらいから書きはじめたので、遅刻しました。ごめんなさい。
この記事には、Ktorを使ったプロジェクトの作成方法を書きました。ついでに、Ktorを使った時のテストの書き方も紹介します。 また、記事で作ったアプリのソースコードはGithubに置いてあります。 github.com
Ktorとは
Kotlin製のWebフレームワークです。
最近記事とかも増えてきたので、よいですね。 ちなみに、PCK2017モバイル部門に出場した時に作った作品のバックエンドには、Ktorを使っています。(AndroidアプリもKotlinなので、100%Kotlin???)
Hello World
build.gradle
maven { url "https://dl.bintray.com/kotlin/kotlinx" } maven { url "https://dl.bintray.com/kotlin/ktor" }
をrepositories
に追加したあと、
compile "io.ktor:ktor-server-netty:0.9.0"
をdependencies
に追加してください。
Helloと返すエンドポイントを定義する
application.conf
あとでテストを書きたいので、application.confをresourcesに追加します。
modules
に先ほどのエンドポイントを定義している拡張関数のパッケージと名前を設定します。
gist.github.com
動かす
メインクラスをio.ktor.server.netty.DevelopmentEngine
に設定して起動します。localhost:8080
を叩くとHello
という文字列が返されるようになりました。おめでとうございます。
~>curl localhost:8080 Hello
テストの書き方
順番が逆な気がしますが。
build.gradle
先ほど書いたbuild.gradleのdependencies
に
testCompile "junit:junit:4.12" testCompile "io.ktor:ktor-server-test-host:$ktor_version"
を追加します。
テストクラス
先ほどのエンドポイントを叩いて、ステータスコードが200 OKであることと、Hello
が返されていることをテストしています。
gist.github.com
お疲れ様でした。
まとめ
Webアプリを作りたい気持ちになったときに、まだ発展途上っぽいですがKtorを使ってみるのもいいと思います。PCKの時に使ってましたが、Ktorのバージョンをあげたらテストが半分くらい落ちるようになったりしてちょっと怖かったです。PCKの開発が始まったときのKtorのバージョンは0.3.3だったんですが、いつの間にか0.9.0とかになってバージョンアップが早いですね。
すばやく記事を書いたので、次の日の記事が投稿される前にこの記事を投稿できました。広義明日は1年生のfooくんの番です。