Swaggerのさわりだけ
2015.11.27

Developers in KOBEVol. 2
Bathtimefish 村岡 正和
HTML5-WEST.jp代表 / html5j マークアップ部 部長 / HTML5 Experts.jp メンバー
GDG京都 / CSS Nite in OSAKA / 神戸ITフェスティバル実行委員など
むらおか まさかず
村岡正和
HTML5-WEST.jp
Webアプリケーション開発 IT業務システム設計/開発
Webサービス導入/事業戦略コンサルティング
@bathtimefish
Firefox OSの
薄い本書きました。
http://goo.gl/mA8ebW
好評発売中!
開発に、「もえあがる」のはつきものだ
第一話 がいあハックス
(Gaia開発環境の構築とデバッグ)
著
また書きました。
C86
第一話 WebIDEを使いこなす
(WebIDEを使ったアプリ開発法)
著
http://goo.gl/IzkT5m
FirefoxOSアプリ開発のやり方書きました
http://codezine.jp/article/detail/8476
http://kobekokaku.jp/  #kobekokaku
神戸市公安9課、起動。
神戸土産にはゴーフルを買いましょう
http://www.sankei.com/region/news/150923/rgn1509230055-n1.html
勉強会やってます。
MFT2015に出展しました。
http://codezine.jp/article/detail/8997
Swagger
http://ejje.weblio.jp/content/swagger
やたら
HIPHOPっぽい
http://swagger.io/
http://swagger.io/introducing-the-open-api-initiative/
http://www.publickey1.jp/blog/15/open_api_initiative.html
一言でいうと、
REST APIを定義するための仕様と
それに基づく
リファレンス自動生成ツール&
API開発フレームワーク
REST API Backend
を開発するときにいい感じのものです。
http://swagger.io/specification/
API 定義仕様書
JSON, YAML, XMLで定義する
リクエストメソッド
APIパス
パラメータ名
クエリ
必須
型
/persons?size=1234
レスポンスステータス
レスポンス
{
name : hoge ,
single : true
}
APIリファレンス生成用オンラインエディタ
http://editor.swagger.io/
Document Builder, Validator, Tester
http://petstore.swagger.io/#/
Tools
https://github.com/swagger-api/swagger-core
https://github.com/swagger-api/swagger-node
https://github.com/ruby-grape/grape-swagger
https://github.com/zircote/swagger-php
個人的にはswagger-nodeがお気に入り
https://github.com/swagger-api/swagger-node
swagger-node
• Swagger定義ファイル(yaml)を基にAPIサーバ

を作成できる
• Swaggerの定義がルーターになる感じ
• コントローラ内では全てのリクエストパラメータを

swagger.params.xxx.value で受けられる

(queryでもpathでもformDataでも)
• リクエスト/レスポンスパラメータは定義に従って

オートバリデートされる。バリデートエラーは例外

が投げられる。
• ベースとなるサーバはconnect,express,hapi,restify,

sailsから選択可能
Demo
(時間あったら)
まとめ
今までこうだったのが、
フロントの人と
API仕様打ち合わせる
xlsとかSpreadsheedで
API仕様書を作成する
node-easymockで
APIモックサーバ
つくる
本番用を作りこむ
開発中の仕様変更
こうなった。
フロントの人と
API仕様打ち合わせ
$ swagger project create
$ swagger project edit
ながら
swagger.yaml
を定義する
controllerに
ダミーのレスポンス
を仕込む
branch mock-version
branchrelease-version
本番用を作りこむ
開発中の仕様変更
swagger.yamlが共有できる
ドキュメントは自動生成される
開発楽になった感はあるし、
これからREST API標準仕様になるんだったら
やっといていいかもと思います。
Thanks !

Swaggerのさわりだけ