potatotipsで発表してきました

先日potatotips #45で「Swaggerで定義したAPI仕様から Retrofitで使用するinterfaceを自動生成してみる」というタイトルで発表してきました。リクルートマーケティングパートナーズさん、お邪魔させて頂きありがとうございました。

資料はこちらです。

今回発表した内容は、会社の開発合宿で書いたコードをベースに試行錯誤したものです。

tech.vasily.jp

おんやど恵さんは開発合宿におすすめです。足湯コーディングもできて最高。Retrofitで使用するinterfaceやデータクラスといったデータ層のコードを手で書いていくのが面倒だと思っていたので、開発合宿はちょうどいい機会でした。

合宿中は自力でswagger.ymlをパースしていたので大変だったのですが、合宿後にswagger-api/swagger-parserを見つけて一瞬でパースの問題は解決してしまいました。Kotlinで実装していたのですが、Javaの資産を使えるのは本当に助かります。

github.com

コードの生成にはsquare/kotlinpoetを使っています。kotlinpoetの情報があまりなく、Single<List<String>>のような型をどう生成すれば良いか悩んでいたのですが、KotlinConfでのJake神のスライドを見てParameterizedTypeNameを使えば良いと気づき解決しました。ありがたい。

Generating Kotlin Code (KotlinConf 2017) // Speaker Deck

最終的にある程度ちゃんと動く物が作れてよかったです。具体的にどうやっているのかなどの詳細は、アドベントカレンダーの記事にまとめようと思います。

湯河原最高だったのでまた行きたい。