はじめに
どうも!tasukuです!
先日kotlin fest 2019へ行ってきてkotlin欲が高まり、Ktorを使ってみたので少しだけ書いてみたいと思います。
内容はタイトルの通りKtorを使ってローカルホストでHello Woldを表示するまでです。
(Ktorを始めたばかり かつ サーバーサイドあまり詳しくないので間違っていたらご指摘いただけたら幸いです)
環境
・macOS Mojave (version 10.14.5)
・IntelliJ IDEA (version 2019.2.2)
↑インストールしてない人はこちらからインストールしてください。とりあえずCommunityEditionで大丈夫です。
スタート!まずはKtorプラグインを追加
IntelliJ IDEAをインストールしただけだとKtorが使えないのでプラグインを追加します。
起動して最初の画面のConfigureのところをクリックして、Pluginsを選びます。
そして検索窓でKtorと検索すると出てくるのでOKを押してプラグインを追加します。
これでKtorが使えるようになりました
プロジェクトを作る
それではここからProjectを作っていきます
まずIntelliJ IDEAの最初の画面からCreate New Projectをクリックします。
そうすると以下の画面へ遷移します。
この画面では左のリストでKtorを選択します。
他にも色々と設定がありますが、今回は特にいじらなくて大丈夫です。
右下のnextを押して次に進みます。
ここもデフォルトのままで大丈夫なのでnextを押して次へ進みます。
ここではプロジェクトの名前と作成される場所を決めます。
とりあえずプロジェクト名はhello-worldにでもしておきます。
作成される場所は今回はデフォルトにしています。ご自身のお好きな場所に設定していただいて構いません。
最後にFinishを押します。
Finishを押すと以下のやつが出てきます。
僕はAutomatically import this project ~ にチェックを入れました。自動でimportしてくれた方が便利なんじゃないかと思いまして。
まあこの画面もほとんど変えずにOKを押して構いません。
ここまできたらプロジェクトが立ち上がっているはずです!
Hello Worldを表示する
プロジェクトを作って初期状態のコード
こんな感じです。srcの下にいるApplication.ktです。
package com.example
import io.ktor.application.*
import io.ktor.response.*
import io.ktor.request.*
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) {
}
この状態でアプリをrunしてアクセスしてみても真っ白な画面が表示されるだけです。
hello worldを表示するための実装
以下のようにApplication.ktを修正してRunしてみてください。
localhost:8080にアクセスするとHello Worldが表示されるはずです!
package com.example
import io.ktor.application.*
import io.ktor.response.*
import io.ktor.request.*
import io.ktor.routing.get
import io.ktor.routing.routing
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("/") {
call.respondText { "Hello World" }
}
}
}
どうでしたか?ちゃんと表示されたでしょうか?
Ktorの公式を見るとApplication.ktが違いますが、今回はプロジェクトを立てると自動で作られるコードを元に実装してみました。
おまけ
localhost:8080にアクセスするとHello Wolrdが表示されたはずです。
この8080というポート番号はどこで決めてるのでしょうか?
答えはresources/application.confです。ということで中身を見てみましょう
ktor {
deployment {
port = 8080
port = ${?PORT}
}
application {
modules = [ com.example.ApplicationKt.module ]
}
}
しっかりport = 8080
と書いてありますね。
ここを変えることでポート番号を変えることができます。
終わりに
今回はKtorでHello Worldを表示してみました。思っていたよりも簡単にできたのではないでしょうか?
まだKtorの情報も多くはないので、少しでもお役に立てたら嬉しいです!
ここまで見ていただきありがとうございました。