Swagger × Spring Cloud

Swagger × Spring Cloud

Spring Day 2016 Lightning Talk
http://springday2016.springframework.jp

9054e8c93ca920a18b9822237c09f0a4?s=128

Hidetake Iwata

November 18, 2016
Tweet

Transcript

  1. Swagger × Spring Cloud @int128 (Hidetake Iwata)

  2. None
  3. Open API Specification / Swagger REST APIの仕様をJSONやYAMLで記述できる。 ツールセットが提供されている。 • Swagger

    Editor(エディタ) • Swagger UI(APIコンソール) • Swagger Codegen(コード自動生成)
  4. Swagger Codegen Swagger YAMLからいろんな言語のソースコードを自動生成する ツール。JARで提供されている。 • Java • Node.js •

    PHP • などなど ※逆に、アノテーションからAPI仕様を生成する方法もある
  5. Swagger Codegen × Spring 以下のテンプレートを選択できる: 1. spring-mvc ◦ APIサーバのControllerとModelが自動生成される ◦

    Spring MVC 2. spring-cloud ◦ APIクライアントのClientとModelが自動生成される ◦ Spring Cloud Feign
  6. 自動生成コードの取り扱い 自動生成されたコードは変更しない。 JARに切り出して、ビルドツールで依存関係を張る。 地獄のパターン: • 自動生成されたコードをいじる(ControllerやModel) • API仕様が変わる • コードに変更を取り込む?

  7. 自動生成コード: • Controllerクラス ◦ ServiceクラスをDIしてメソッド実行 ◦ テンプレートをカスタマイズ • Modelクラス 実装コード:

    • Serviceクラス:ビジネスロジックを実装 自動生成コードと実装コードをDIで分離
  8. Gradle Swagger Generator Plugin Swagger YAMLからソースコードやドキュメントを生成 https://github.com/int128/gradle-swagger-generator-plugin

  9. None
  10. None
  11. None
  12. Thank you

  13. 2002年 2003年 2004年 2005年 Spring 1.0がリリースされたのはいつ?