swagger × spring cloud

13
Swagger × Spring Cloud @int128 (Hidetake Iwata)

Upload: hidetake-iwata

Post on 14-Apr-2017

277 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Swagger × spring cloud

Swagger × Spring Cloud@int128

(Hidetake Iwata)

Page 2: Swagger × spring cloud
Page 3: Swagger × spring cloud

Open API Specification / Swagger

REST APIの仕様をJSONやYAMLで記述できる。

ツールセットが提供されている。

● Swagger Editor(エディタ)

● Swagger UI(APIコンソール)

● Swagger Codegen(コード自動生成)

Page 4: Swagger × spring cloud

Swagger Codegen

Swagger YAMLからいろんな言語のソースコードを自動生成する

ツール。JARで提供されている。

● Java● Node.js● PHP● などなど

※逆に、アノテーションからAPI仕様を生成する方法もある

Page 5: Swagger × spring cloud

Swagger Codegen × Spring

以下のテンプレートを選択できる:

1. spring-mvc○ APIサーバのControllerとModelが自動生成される

○ Spring MVC2. spring-cloud

○ APIクライアントのClientとModelが自動生成される

○ Spring Cloud Feign

Page 6: Swagger × spring cloud

自動生成コードの取り扱い

自動生成されたコードは変更しない。

JARに切り出して、ビルドツールで依存関係を張る。

地獄のパターン:

● 自動生成されたコードをいじる(ControllerやModel)● API仕様が変わる

● コードに変更を取り込む?

Page 7: Swagger × spring cloud

自動生成コード:

● Controllerクラス

○ ServiceクラスをDIしてメソッド実行

○ テンプレートをカスタマイズ

● Modelクラス

実装コード:

● Serviceクラス:ビジネスロジックを実装

自動生成コードと実装コードをDIで分離

Page 8: Swagger × spring cloud

Gradle Swagger Generator Plugin

Swagger YAMLからソースコードやドキュメントを生成

https://github.com/int128/gradle-swagger-generator-plugin

Page 9: Swagger × spring cloud
Page 10: Swagger × spring cloud
Page 11: Swagger × spring cloud
Page 12: Swagger × spring cloud

Thank you

Page 13: Swagger × spring cloud

2002年

2003年

2004年

2005年

Spring 1.0がリリースされたのはいつ?