会社でKotlin dojo(第40回)を開催した

今週は第40回を開催しました。引き続きKotlin Hands-on編です!

 

前回の様子はコチラ↓

kdnakt.hatenablog.com

 

 

[第40回の様子]

2020/11/18に第40回を開催した。

 

参加メンバーは自分をいれて4名。メンバー的には先週の5名マイナス1。継続的に参加してくれてほんとにありがたい。

 

勉強会本編の内容としては、前回からはじめたKotlin Hands-on

Creating HTTP APIs with Ktorを継続中。第4章のOrder Routesと第5章のManually testing HTTP endpointsを進めた。今回はあまり目新しい内容もなかったので比較的進捗が良い。

 

今回も、Hands-on編に入って初めてのドライバーが担当してくれた。みんなちゃんとセットアップをやってきてくれて助かる!

 

[学んだことや疑問点]

  • Creating HTTP APIs with Ktor: 4. Order Routes
    • 前回のCustomer Routesと比べると、特筆すべき内容はない
    • 前回のCustomer Routesがルーティングを1関数で定義していたのに対して、今回は個々のルーティングのパスをそれぞれ別の関数に定義していた
    • 前回のやり方の方が今後のルーティング追加などの修正時に影響範囲が少ないので、説明の順序としては、今回のやり方を先に説明したほうが良いのでは?と思う
  • Creating HTTP APIs with Ktor: 5. Manually testing HTTP endpoints
    • ようやくこれまで3週間ほどかけて(実際に手を動かした時間は2時間もないが)実装してきたものを動かしてみる
    • curlとかブラウザを使ってもいいんだけどIntelliJ IDEでは.http形式のファイルがサポートされているのでこれを手動テストに利用する
    • src/testディレクトリに、テスト用のファイルを作成する(今回であればCustomerRoutes.httpのようになる
    • 起動するサーバーに合わせて、以下のようにリクエストをファイル内に記述する。複数リクエストをまとめて書く場合は###で区切る。
POST http://127.0.0.1:8080/customer
Content-Type: application/json

{
  "id": "100",
  "firstName": "Jane",
  "lastName": "Smith",
  "email": "jane.smith@company.com"
}

###
GET http://127.0.0.1:8080/customer
Accept: application/json
    • すると以下のように、IDEの画面上でリクエストを投げられるようになる
    • 開発中にちょっとずつリクエストを微修正して繰り返し実行したいような場合には良いかも。

Run POST Request

    • 実行結果は次のようになる

Run Output

    • しかし、毎回手動で実行するのは数が増えてきたら大変だなーと思ってたら、ちょうど次の章がテストコードを書く方法の解説のようだった。楽しみ。

 

 

[まとめ]

モブプログラミング・スタイルで、Kotlin Hands-onを継続している。

これまで実装したHTTP APIを実際に動かしてみて、ちゃんと動いていることを確認できた!やったー!

来週はテストコードを実装するぞ!!

 

今週の進捗は以下のプルリクエストにまとまっている。

ref the Order routes section and Manually testing HTTP endpoints by rinse · Pull Request #5 · kdnakt/kotlin-dojo · GitHub