際際滷

際際滷Share a Scribd company logo
JSON Schema で
Web API のスキマを托めよう
今析圻虻o (@co3k)
クライアントg廾サ`バg廾
碧
Web API にありがちなこと
API	 ドキュメント
リクエストレスポンス
ぶっちゃけAPI	 の弖紗rく
らいしか厚仟していない
なぜかドキュメントにない奉來が
根まれている
返が錆ってドキュメントと飛孤`う侘塀の
奉來を根めちゃったけどなんとなく宥った
クライアントg廾サ`バg廾
碧
いまは API Blueprint でBってる?
(http://apiblueprint.org/)
API	 ドキュメント
リクエストレスポンス
Markdown	 の?
ス`パ`セット

(ツラい)
API	 Blueprint

(YAML	 燕F)
generate
mockvalidate
あんまり耙しく
ない
なんかeに	  JSON	 
Schema	 かない
といけない
クライアントg廾サ`バg廾
碧
書晩したいこと
JSON	 Schema
API	 ドキュメント
リクエストレスポンス
generate
validatevalidate
API	 碧の	 DSL
ドキュメントが碧に弖
していることを隠^
秘薦I尖のg廾が碧に
弖惄靴討い襪海箸魃T^
竃薦I尖のg廾が碧に
弖惄靴討い襪海箸魃T^
クライアントg廾サ`バg廾
碧
(まだ) o尖だった
JSON	 Schema
API	 ドキュメント
リクエストレスポンス
generate
API	 碧の	 DSL
ドキュメントが碧に弖
していることを隠^
JSON Schema
? リソ`スや attribute、 JSON を喘いた API について燕F
することができるフォ`マット (http://json-schema.org/
documentation.html)
? JSON Schema Core
? JSON Schema Validation
? JSON Hyper-Schema
JSON Schema
$ curl https://api.heroku.com/
schema -H "Accept:
application/vnd.heroku+json;
version=3"
Validation (嚠協)
? JSON Schema 碧に児づく validate 喘ライブラリは冱
Zわず遣るほどあるはずなのでそれを聞えばよい
? 秘薦も JSON Schema でバリデ`ションするようにすれば
(ある殻業の) 秘薦編^は徭蛍でかなくてもgむ
? 竃薦は JSON Schema のバリデ`ションに宥るかどうかだ
け_Jすれば (ある殻業の) テストは徭蛍でかなくても
gむ
Documentation
? prmd で伏撹するのがオススメ
? Heroku の API ドキュメント喘に恬られた
? JSON Hyper-Schema から GitHub Markdown を竃薦し
てくれる
? erb 侘塀のテンプレ`トで竃薦をカスタマイズ辛嬬
? 今析圻も contribute している
Documentation
https://github.com/interagent/prmd
g箭
https://devcenter.heroku.com/
articles/platform-api-reference
Heroku Interagent
https://github.com/interagent/
interagent/committee
? Rack middleware to validate responses according
to JSON schema?
?
JSON スキ`マに児づくレスポンスのバリデ`ションをする
Rack ミドルウェア
interagent/schematic
? Generate Go client code for HTTP APIs described by
JSON Hyper-Schemas.?
?
JSON Hyper-Schema によって峰された HTTP API の
Go クライアントを伏撹する
interagent/http-api-design
? HTTP API design guide extracted from work on the
Heroku Platform API?
?
Heroku Platform API の撹惚麗から塗伏した HTTP API の
Oガイド
? 恍晩の 25 rになぜか才Uをはじめた https://
github.com/co3k/http-api-design/tree/translate-
japanese
interagent/heroics
!
!
? Ruby HTTP client for APIs represented with JSON
schema?
?
JSON スキ`マによって燕Fされた API のための Ruby
HTTP クライアント
クライアントg廾サ`バg廾
碧
まとめ
JSON	 Schema
API	 ドキュメント
リクエストレスポンス
generate
validatevalidate
API	 碧の	 DSL
ドキュメントが碧に弖
していることを隠^
秘薦I尖のg廾が碧に
弖惄靴討い襪海箸魃T^
竃薦I尖のg廾が碧に
弖惄靴討い襪海箸魃T^
Question?

More Related Content

JSON Schema で Web API のスキマを托めよう