swagger × spring cloud
TRANSCRIPT
Swagger × Spring Cloud@int128
(Hidetake Iwata)
Open API Specification / Swagger
REST APIの仕様をJSONやYAMLで記述できる。
ツールセットが提供されている。
● Swagger Editor(エディタ)
● Swagger UI(APIコンソール)
● Swagger Codegen(コード自動生成)
Swagger Codegen
Swagger YAMLからいろんな言語のソースコードを自動生成する
ツール。JARで提供されている。
● Java● Node.js● PHP● などなど
※逆に、アノテーションからAPI仕様を生成する方法もある
Swagger Codegen × Spring
以下のテンプレートを選択できる:
1. spring-mvc○ APIサーバのControllerとModelが自動生成される
○ Spring MVC2. spring-cloud
○ APIクライアントのClientとModelが自動生成される
○ Spring Cloud Feign
自動生成コードの取り扱い
自動生成されたコードは変更しない。
JARに切り出して、ビルドツールで依存関係を張る。
地獄のパターン:
● 自動生成されたコードをいじる(ControllerやModel)● API仕様が変わる
● コードに変更を取り込む?
自動生成コード:
● Controllerクラス
○ ServiceクラスをDIしてメソッド実行
○ テンプレートをカスタマイズ
● Modelクラス
実装コード:
● Serviceクラス:ビジネスロジックを実装
自動生成コードと実装コードをDIで分離
Gradle Swagger Generator Plugin
Swagger YAMLからソースコードやドキュメントを生成
https://github.com/int128/gradle-swagger-generator-plugin
Thank you
2002年
2003年
2004年
2005年
Spring 1.0がリリースされたのはいつ?