Slide 1

Slide 1 text

Swagger × Spring Cloud @int128 (Hidetake Iwata)

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Open API Specification / Swagger REST APIの仕様をJSONやYAMLで記述できる。 ツールセットが提供されている。 ● Swagger Editor(エディタ) ● Swagger UI(APIコンソール) ● Swagger Codegen(コード自動生成)

Slide 4

Slide 4 text

Swagger Codegen Swagger YAMLからいろんな言語のソースコードを自動生成する ツール。JARで提供されている。 ● Java ● Node.js ● PHP ● などなど ※逆に、アノテーションからAPI仕様を生成する方法もある

Slide 5

Slide 5 text

Swagger Codegen × Spring 以下のテンプレートを選択できる: 1. spring-mvc ○ APIサーバのControllerとModelが自動生成される ○ Spring MVC 2. spring-cloud ○ APIクライアントのClientとModelが自動生成される ○ Spring Cloud Feign

Slide 6

Slide 6 text

自動生成コードの取り扱い 自動生成されたコードは変更しない。 JARに切り出して、ビルドツールで依存関係を張る。 地獄のパターン: ● 自動生成されたコードをいじる(ControllerやModel) ● API仕様が変わる ● コードに変更を取り込む?

Slide 7

Slide 7 text

自動生成コード: ● Controllerクラス ○ ServiceクラスをDIしてメソッド実行 ○ テンプレートをカスタマイズ ● Modelクラス 実装コード: ● Serviceクラス:ビジネスロジックを実装 自動生成コードと実装コードをDIで分離

Slide 8

Slide 8 text

Gradle Swagger Generator Plugin Swagger YAMLからソースコードやドキュメントを生成 https://github.com/int128/gradle-swagger-generator-plugin

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Thank you

Slide 13

Slide 13 text

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