Kotlin
Ktor
KotlinDay 20

Kanaryを使ってみた!

Kanaryって?

GithubのReadmeによる 「A minimalist Kotlin web framework for building scalable and expressive RESTful APIs」で、簡単に言うとKtorみたいなweb frameworkです!

Kanary Logo

Ktorとかなり似てますので比べましょう!

Install

まぁ、どっちもインストールしやすいですね!

Ktor.kt
embeddedServer(Netty, 8080)
    .start(wait = false)
Kanary.kt
val app = KanaryApp()
val server = Server()
server.handler = AppHandler(app)
server.listen(8081)

両方とも簡単にインストール出来ます。だが、これじゃ何も動かない。

Handling requests

シンプルなケースを見ると

Ktor.kt
install(Routing) {
    route("hello") {
        get("/world") {
            call.respondText("Hello, World!", status = HttpStatusCode.OK)
        }
    }
}
Kanary.kt
val router = KanaryRouter("/hello")
router.get("/world",
    {_, _, response ->
        response withStatus 200 send "Hello, World!"
    }
)
app.mount(router)

Kanaryの方は英語っぽくかけるが、Ktorの方が全体的に読みやすいかな?
確かにKanaryの infix notation が読みやすく見えますね

response withStatus 200 send "Hello, World!"

Overall

KanaryもKtorも使いやすいので、ご遠慮なく使ってみてください!
Kanaryのいい点
- インストールはまあまあ簡単
- infix notation は読みやすい
- ライフサイクルコールバックある (beforeAction() afterAction())