KtorでCRUDアプリを作成する ~STEP1: Hello World
修論が終わりつつあり,余裕があるので1年ぶりの初投稿します笑 全体の目標としてははKotlin製のFrameworkであるKtorを使って,CRUD(Create, Read, Delete, Update)が可能なWebアプリケーションを作成することです.KtorはSpringほどの機能はないですがシンプルなので使いやすいFrameworkです. 記事は段階的に書こうと思っています.今回はその初回です.
今回の目標
今回はKtorでアプリケーションを起動してレスポンスでHello worldを返せるようにすることです.
Ktor Pluginのインストール
今回はIntellijを使って作成しようと思います.IntellijにはKtorをサポートするPluginが提供されているのでまずはそのプラグインをインストールして下さい.
プロジェクトの作成
IntellijのCreate New ProjectからKtorを選びプロジェクト作成して下さい.デフォルト設定のまま作成して貰って大丈夫です.
もしうまく作成しなければgradle/wrapper/gradle-wrapper.properties
を書き換えるなどをしてgradleのversionをあげて下さい.(僕は6.1.1で起動しました.)
Hello Worldを返す
プロジェクトがうまく作成されるとApplication.kt
というfileがあると思います.このファイルを書き換えてGetに対するレスポンスでHello worldを返そうと思います.
Routingを定義する方法はいくつかあるのですが今回は標準のものを使います.例を見て頂いた方が早いので以下に書き換えた後のApplication.kt
を示します.
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("/hello") { //get methodを定義する call.respond("Hello World") //responseの中身を定義する } } }
このような形でrouting内にどのパスに対してどんなメソッドを定義するかを記述します.どんなレスポンスを返すかはcall.respondeの引数で指定します. アプリケーションはデフォルト設定ではlocalhost:8080で起動するので実際に叩いてみると以下のようなレスポンスが返ってきます.
まとめ
今回はKtorでHello Worldを返す部分までを実現しました.次回は他のHTTPメソッドの定義やクエリパラメータの受け取り方等について触れようと思っています