potatotipsで発表してきました
先日potatotips #45で「Swaggerで定義したAPI仕様から Retrofitで使用するinterfaceを自動生成してみる」というタイトルで発表してきました。リクルートマーケティングパートナーズさん、お邪魔させて頂きありがとうございました。
資料はこちらです。
今回発表した内容は、会社の開発合宿で書いたコードをベースに試行錯誤したものです。
おんやど恵さんは開発合宿におすすめです。足湯コーディングもできて最高。Retrofitで使用するinterfaceやデータクラスといったデータ層のコードを手で書いていくのが面倒だと思っていたので、開発合宿はちょうどいい機会でした。
合宿中は自力でswagger.ymlをパースしていたので大変だったのですが、合宿後にswagger-api/swagger-parserを見つけて一瞬でパースの問題は解決してしまいました。Kotlinで実装していたのですが、Javaの資産を使えるのは本当に助かります。
コードの生成にはsquare/kotlinpoetを使っています。kotlinpoetの情報があまりなく、Single<List<String>>
のような型をどう生成すれば良いか悩んでいたのですが、KotlinConfでのJake神のスライドを見てParameterizedTypeName
を使えば良いと気づき解決しました。ありがたい。
Generating Kotlin Code (KotlinConf 2017) // Speaker Deck
最終的にある程度ちゃんと動く物が作れてよかったです。具体的にどうやっているのかなどの詳細は、アドベントカレンダーの記事にまとめようと思います。
湯河原最高だったのでまた行きたい。