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が提供されているのでまずはそのプラグインをインストールして下さい. f:id:harada-777:20200209145113p:plain

プロジェクトの作成

IntellijのCreate New ProjectからKtorを選びプロジェクト作成して下さい.デフォルト設定のまま作成して貰って大丈夫です. f:id:harada-777:20200209145026p:plain もしうまく作成しなければ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で起動するので実際に叩いてみると以下のようなレスポンスが返ってきます. f:id:harada-777:20200209145141p:plain

まとめ

今回はKtorでHello Worldを返す部分までを実現しました.次回は他のHTTPメソッドの定義やクエリパラメータの受け取り方等について触れようと思っています

oboe-note.hatenablog.com