mizoguche.info

KotlinでJSON返すAPIを書いてる

趣味プロジェクトでKotlin製のKtorというフレームワークをを使ってJSONを返すWebアプリケーションを書いてる。

Ktorの概要

面白いところ

ルーティングも含めてすべての機能をFeaturesというMiddlewareのようなものとして扱う。

fun Application.main() {
    install(DefaultHeaders)
    install(CallLogging)
    install(Routing) {
        get("/") {
            call.respondText("Hello, World!")
        }
    }
}

上記のコードでは、 DefaultHeadersCallLoggingRouting がFeature。

リクエストとレスポンスの流れ

  1. リクエストがあるたび、ApplicationCall生成されPipelineを実行している
  2. 各Featureは、 ApplicationCallPipeline をinterceptし、 ApplicationCall に対して処理を行う

サンプルアプリケーション

KtorのPros/Cons

Pros

薄い

Cons

ドキュメントがほぼほぼ存在しない

APIが安定してない

Kotlin的なうまみ

buildersconで見たんですけど、だいたいこのスライドの通りという感じ。

まとめ

Kotlinで書くの楽しい。