good-bye swagger

19
Good-Bye

Upload: katada-yuki

Post on 11-Apr-2017

783 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Good-Bye Swagger

Good-Bye

Page 2: Good-Bye Swagger

Introduction

Name

片田

Page 3: Good-Bye Swagger

What is Swagger?http://swagger.io/

Swagger - [ 形容詞 ](( 略式 )) しゃれた、めかした、いきな

Page 4: Good-Bye Swagger

What is Swagger?

コードから API Document を自動生成してくれる粋なツール!

Page 5: Good-Bye Swagger

What is Swagger?

いちいちドキュメントを書く必要がない!API に変更があった時 ( カラムが増えた時など ) にドキュメントを編集する必要もない!

Page 6: Good-Bye Swagger

Swagger ツール

1. Swagger Core – Swagger のメインリポジトリー

2. Swagger UI – Swagger の UI 部分 , Swagger API を元に生成する

Page 7: Good-Bye Swagger

Swagger ツール

今回は、 Play Framework 用の Swagger ライブラリを使いました。

※ かつては Swagger Core リポジトリに Play Framework のライブラリもあったようだが、現在は Swagger-Play リポジトリに移動している

Page 8: Good-Bye Swagger

Scala のコードの中に Swagger の記述をする

Swagger ツールScala が生成した JSON を元に Swagger UI が生成される

Page 9: Good-Bye Swagger

Swagger ツール

必要なこと1. Play Framework の場合 routes に Swagger の Docs 用の URL を記述する

2. Swagger の Annotation をコントローラ に ( 場合によってはモデルにも ) 記述する

Page 10: Good-Bye Swagger

Swagger ツール

スーパーシンプル!

Page 11: Good-Bye Swagger

Swagger

ウキウキ気分で 1 日かけて Swagger 導入のためコードを書いたその結果、、、

Page 12: Good-Bye Swagger

Swagger

あまり使えない。

Page 13: Good-Bye Swagger

問題その1

Option[Int]/Option[Boolean]  などのOption プリミティブ型が Swagger UI 上に表示されない!元のコードが Java だから Option は何かのオブジェクトとしか認識されないのかも、、、

Page 14: Good-Bye Swagger

問題その1

解決策モデルで ApiModel で dataType( 型 ) を毎回指定する→ 完全な自動生成じゃない。

Page 15: Good-Bye Swagger

問題その2

Generics を使うと null 値が入る。

Page 16: Good-Bye Swagger

問題その2

Null 値が入ってしまう。

Page 17: Good-Bye Swagger

その他問題

https に完全対応してない。Map 型対応してない。日本語ドキュメント少ない。Swagger Annotation のドキュメント極少。やや重い。

Page 18: Good-Bye Swagger

結論バグ ( 仕様 ?) に取られる工数を考えると普通にドキュメント書いた方が早い。

Page 19: Good-Bye Swagger

ご静聴ありがとうございました。Swagger - (( 古風 )) (… について ) おおぼらをふく