今週は第48回を開催しました。引き続きKotlin Hands-onをすすめています。
前回の様子はコチラ↓
[第48回の様子]
2021/1/20に第48回を開催した。
参加メンバーは自分をいれて5名。先週の終了時点比でいうと2.5倍に増加しているw
2020年に何度か参加してくれていて、今年初参加というメンバーもいた。継続して参加してくれてありがたい。
勉強会本編の内容としては、前回に引き続きCreating an interactive website with Ktorハンズオンを進めた。第5章、第6章を実施して、このハンズオンをすべて終わらせることができた。
[学んだことや疑問点]
post("/submit") {
val params = call.receiveParameters()
val headline = params["headline"] ?: return@post call.respond(HttpStatusCode.BadRequest)
val body = params["body"] ?: return@post call.respond(HttpStatusCode.BadRequest)
val newEntry = BlogEntry(headline, body)
blogEntries.add(0, newEntry)
// TODO: send a status page to the user
}
call.receiveParameters()でリクエストボディのパラメータを取得できる- 取得したデータは
String?なのでnullの場合はreturn@postでラベル付きリターンを利用して400レスポンスを返している - 後半は、kotlinx.htmlを利用してHTMLをレスポンスに載せる実装
call.respondHtml {
body {
h1 {
+"Thanks for submitting your entry!"
}
p {
+"We've submitted your new entry titled "
b {
+newEntry.headline
}
}
p {
+"You have submitted a total of ${blogEntries.count()} articles!"
}
a("/") {
+"Go back"
}
}
}
- HTMLタグをKotlinのラムダ式っぽい書き方で書いている
- 文字列だけでなく、オブジェクトもそのままアクセスできるので便利そう
- サーバーを起動して動作確認すると、問題なく動作した🎉
- Creating an interactive website with Ktor: 6. What's next
[まとめ]
モブプログラミング・スタイルで、Creating an interactive website with Ktorハンズオンを進めた。
KtorでのPOSTリクエストの扱い方や、kotlinx.htmlライブラリの利用方法を学んだ。
今週の進捗は以下のプルリクエストにまとまっている。