今週は第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ライブラリの利用方法を学んだ。
今週の進捗は以下のプルリクエストにまとまっている。