Ktor Serverの調査メモ
Creating HTTP APIs
使用プラグイン
- Routing
- ContentNegotiation
- kotlinx.serialization
ルーティング関係を担当するプラグイン。よくある感じの機能がちゃんとある印象。
ルーティングをファイルごとに分けることも可能な感じがするので普通に良さそう。
シリアライズを担当するプラグイン。
JSONの場合、kotlinx.serialization, Gson, Jacksonから使用ライブラリを選べる。
data classを使って受け取るデータに型を付けられるみたい。
ログの設定について書いてある。
なぜxmlで設定しなくてはいけないのかと思っていたが、単純にLogbackが古くからあるJava製のライブラリなためっぽい。
(今更、ログのライブラリをKotlinで出そうという人はあまりいないのかもなぁ。)
設定関係について書いてある。設定関係は実際にアプリを作り始めてからしか役立たないし、一回しか設定しないことも多いし、詳細は読み込まず、いったん場所だけ確認した感じ。
大まかに2通り方法があって、embeddedServerで設定する or application.confを使うといった方法がある。
application.confを使ったほうがテストとかで値を入れ替えるのは楽そう。
本格的にテストコードを書くタイミングで確認したい。
(Kotestを個人的には使用したいから、補足程度で読む感じになるかも)
なかなか興味深そう。細かく読み込むのはアプリ作ってからでも良さそうだけど。
HOCONを使ったモジュールの切り分けは結構良さそう。
ただ、割とKtorの知識が前提になるので初見の人には分かりにくいかもしれないが…。
一見した感じ、Node.jsのExpressみたいな作りっぽい印象を受けた。個人的にはかなり好み。
SPAを載っけるなら。Nginxを使うなら必須ではないけど。
セッションを使うなら、ktor-server-sessions
を使うみたい。
なかなか自由度の高い構築ができそう。
ktor-server-resources
を使うことで、型安全なルーティングができるっぽい。
割とこれ重要かも。これである程度、バリデーションの変わりになるのかな??
こいつはv2.0.0から非推奨。ktor-server-resources
を代わりに使う。
ktor-server-auth
を使って認証を組み込める。
CallIdってどんな場面で使うんだろうか?
Ktor Server / Developing applications / HTTP
の詳細部分、アプリを作る上で重要なもの解説しているので丁寧に読むと良さそう。
一応、目を通しておく。
OAuth認証くらいは試してみたいと思ってジェネレーター使ったら、GoogleのOAuth認証のサンプルコードまでついてきてめっちゃ楽。