際際滷

際際滷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

What's hot (19)

PDF
Building Scalable Application on the Cloud
Keisuke Nishitani
?
PDF
檎艶温界岳を檎温庄鉛壊とどっぷり聞ってみた三と、フロントエンド〜粥安皆のこれから
Yusuke Murata
?
PDF
What is Serverless?
Terui Masashi
?
PPTX
サ`バ`レスで ガチ云桑\喘までやってるおし
Akira Nagata
?
PDF
Automated Testing on AWS Device Farm
Keisuke Nishitani
?
PDF
2016/05/01 Visual Studio with Cordova
miso- soup3
?
PPTX
g樹サ`バレスア`キテクチャ
湊隻 test
?
PDF
XAML と C# を聞った Windows ストアアプリLOBBのためのtips Prism 4.5 & Kona project 吉のごB初
Shotaro Suzuki
?
PDF
禽艶厩或沿壊とか冱う念に粥安皆エンジニアに岑ってほしいアプリケ`ションのこと
Terui Masashi
?
PPTX
AWS Lambda + PythonY創 ver0.94 20160825
Yasuharu Suzuki
?
PDF
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
PPTX
ASP.NET SPA_kをはじめよう゛書と隆栖とステップアップ
風匯 硬R
?
PPTX
Serverless Framework 聞ってる(node.js)
Naoto Teruya
?
PDF
Serverless ArchitectureにおけるNoSQL Services ?DynamoDBも措いけどSimpleDBも梨れないであげてください。?
Terui Masashi
?
PDF
What's new with Serverless
Keisuke Nishitani
?
PDF
こんなに聞える―颪匹の粥永鴛ドキュメンテ`ションツ`ル
dcubeio
?
PDF
サ`バレスア`キテクチャをg虱業襪垢襪砲△燭辰屯るべきこと
眉姙
?
PPTX
Jaws days2017-ops jaws-2
Serverworks Co.,Ltd.
?
PDF
スマホアフ?リ_k宀のためのWeb api_k秘Tの秘T
Kenyu Miura
?
Building Scalable Application on the Cloud
Keisuke Nishitani
?
檎艶温界岳を檎温庄鉛壊とどっぷり聞ってみた三と、フロントエンド〜粥安皆のこれから
Yusuke Murata
?
What is Serverless?
Terui Masashi
?
サ`バ`レスで ガチ云桑\喘までやってるおし
Akira Nagata
?
Automated Testing on AWS Device Farm
Keisuke Nishitani
?
2016/05/01 Visual Studio with Cordova
miso- soup3
?
g樹サ`バレスア`キテクチャ
湊隻 test
?
XAML と C# を聞った Windows ストアアプリLOBBのためのtips Prism 4.5 & Kona project 吉のごB初
Shotaro Suzuki
?
禽艶厩或沿壊とか冱う念に粥安皆エンジニアに岑ってほしいアプリケ`ションのこと
Terui Masashi
?
AWS Lambda + PythonY創 ver0.94 20160825
Yasuharu Suzuki
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
ASP.NET SPA_kをはじめよう゛書と隆栖とステップアップ
風匯 硬R
?
Serverless Framework 聞ってる(node.js)
Naoto Teruya
?
Serverless ArchitectureにおけるNoSQL Services ?DynamoDBも措いけどSimpleDBも梨れないであげてください。?
Terui Masashi
?
What's new with Serverless
Keisuke Nishitani
?
こんなに聞える―颪匹の粥永鴛ドキュメンテ`ションツ`ル
dcubeio
?
サ`バレスア`キテクチャをg虱業襪垢襪砲△燭辰屯るべきこと
眉姙
?
Jaws days2017-ops jaws-2
Serverworks Co.,Ltd.
?
スマホアフ?リ_k宀のためのWeb api_k秘Tの秘T
Kenyu Miura
?

Viewers also liked (10)

PDF
JSON SchemaとPHP
Hiraku Nakano
?
PDF
JSON Schema と API テスト YAPC::Asia Tokyo 2014
Naoki Shimizu
?
PDF
RAML
Shanky Gupta
?
KEY
PHPカンファレンスv廉2012 Silex
Masao Maeda
?
PDF
干温厩温皆界姻庄沿岳トレント?t凄2014
VOYAGE GROUP
?
PDF
アジャイルマインドの嶷勣來(海勸)
Akiyah
?
PDF
Flux reactF彜_J氏
VOYAGE GROUP
?
KEY
フラットな永堰永からフレ`ムワ`クへ
Masao Maeda
?
PDF
安艶恢粥永鴛のこれまでとこれから
Yohei Yamamoto
?
PPTX
SQLアンチハ?タ`ン メンタ`喘Y創
Hironori Miura
?
JSON SchemaとPHP
Hiraku Nakano
?
JSON Schema と API テスト YAPC::Asia Tokyo 2014
Naoki Shimizu
?
PHPカンファレンスv廉2012 Silex
Masao Maeda
?
干温厩温皆界姻庄沿岳トレント?t凄2014
VOYAGE GROUP
?
アジャイルマインドの嶷勣來(海勸)
Akiyah
?
Flux reactF彜_J氏
VOYAGE GROUP
?
フラットな永堰永からフレ`ムワ`クへ
Masao Maeda
?
安艶恢粥永鴛のこれまでとこれから
Yohei Yamamoto
?
SQLアンチハ?タ`ン メンタ`喘Y創
Hironori Miura
?
Ad

Similar to JSON Schema で Web API のスキマを托めよう (20)

PDF
Isomorphic web development with scala and scala.js
TanUkkii
?
PPT
Tokyowebmining5 yokkuns
Yohei Sato
?
PPTX
SharePoint 2010 を聞ったクラウドアプリ_k
Tusyoshi Matsuzaki
?
KEY
BEAR.Sunday@phpcon2012
Akihito Koriyama
?
PPTX
Workshop1-01
mashimonator
?
PPTX
鯵とサ`ハ?レスア`キテクチャ Aws cognito + aws api gateway
Masayuki KaToH
?
PDF
Sちんユ`サ?`範^原皆沿温
Takahiro Tsuchiya
?
PDF
Amazon api gatewayで web apiをサ`バ`レスでBしよう
Yoichi Toyota
?
PPTX
Workshop1-03
mashimonator
?
PPTX
Dropbox APIなどを聞って崙恬を紳併しよう@v廉オ`プンフォ`ラム
Masayuki Abe
?
PDF
鯵とAngular JS 2
Masayuki KaToH
?
PDF
ASP.NET WEB API _k悶Y
miso- soup3
?
PDF
Sl study 20150804-soft-layer-apibasic-shibata
Naoki Shibata
?
PPTX
Thin Server Architectureでブログ恬った #ikam
Toshiaki Maki
?
PPTX
Workshop1-02
mashimonator
?
PDF
Windows _k宀のための Dev&Ops on AWS
Amazon Web Services Japan
?
PDF
Service workerとwebフ?ッシュ宥岑
zaru sakuraba
?
PDF
Apps for office オンプレミスとクラウド
Hirotada Watanabe
?
PPTX
Zenback API 古勣Y創
Six Apart KK
?
PPTX
Salesforce1 アプリをGruntでデプロイ
Hiroyuki Endoh
?
Isomorphic web development with scala and scala.js
TanUkkii
?
Tokyowebmining5 yokkuns
Yohei Sato
?
SharePoint 2010 を聞ったクラウドアプリ_k
Tusyoshi Matsuzaki
?
BEAR.Sunday@phpcon2012
Akihito Koriyama
?
Workshop1-01
mashimonator
?
鯵とサ`ハ?レスア`キテクチャ Aws cognito + aws api gateway
Masayuki KaToH
?
Sちんユ`サ?`範^原皆沿温
Takahiro Tsuchiya
?
Amazon api gatewayで web apiをサ`バ`レスでBしよう
Yoichi Toyota
?
Workshop1-03
mashimonator
?
Dropbox APIなどを聞って崙恬を紳併しよう@v廉オ`プンフォ`ラム
Masayuki Abe
?
鯵とAngular JS 2
Masayuki KaToH
?
ASP.NET WEB API _k悶Y
miso- soup3
?
Sl study 20150804-soft-layer-apibasic-shibata
Naoki Shibata
?
Thin Server Architectureでブログ恬った #ikam
Toshiaki Maki
?
Workshop1-02
mashimonator
?
Windows _k宀のための Dev&Ops on AWS
Amazon Web Services Japan
?
Service workerとwebフ?ッシュ宥岑
zaru sakuraba
?
Apps for office オンプレミスとクラウド
Hirotada Watanabe
?
Zenback API 古勣Y創
Six Apart KK
?
Salesforce1 アプリをGruntでデプロイ
Hiroyuki Endoh
?
Ad

More from VOYAGE GROUP (20)

PDF
AWS SDK for Go in #jawsmeguro
VOYAGE GROUP
?
PDF
Data Engineering at VOYAGE GROUP #jawsdays
VOYAGE GROUP
?
PDF
[20140625]wwdc2014 feedback
VOYAGE GROUP
?
PDF
Google playでのリワ`ドアプリリジェクトからの書瘁のマネタイズ返粁について インタ`スティシャルレ御〜クロスプロモ`ション-
VOYAGE GROUP
?
PDF
並I坪デザイナ`のミッション┨_井 genesix 儲小ヨ寄
VOYAGE GROUP
?
PDF
[20130624]恷除の_kh廠についてしてみる sakata
VOYAGE GROUP
?
PDF
セミナ`プレゼンY創‐Adingo/ 20130529 
VOYAGE GROUP
?
PDF
セミナ`プレゼンY創‐Adingo/ 20130530 
VOYAGE GROUP
?
PDF
粥恢テストノススメ
VOYAGE GROUP
?
PDF
庄永鞄看稼艶アプリ仝トリセツ々にてg樹したリ`ンスタ`トアップ
VOYAGE GROUP
?
PDF
‐k燕喘/晦沿看ワ`クショップ゛怏岶でサイト個鋲をする圭隈゛
VOYAGE GROUP
?
PDF
干艶稼一庄稼壊と鞄温糸看看沿を旋喘した@A議デ`タ盾裂桟廠の更廏
VOYAGE GROUP
?
KEY
粥稼糸姻看庄糸におけるテストにvして?デバイスをどう僉kするか?
VOYAGE GROUP
?
PDF
スマホ涙創アプリのマネタイズについて‐粥糸庄稼乙看/
VOYAGE GROUP
?
PDF
恷仟のマ`ケットアルゴリズムと、 アルゴリズムを未まえてのプロモ`ション
VOYAGE GROUP
?
PDF
‐k燕喘/ウェブアナリスト劍撹讐恙仝晦沿看と温恢テスト々
VOYAGE GROUP
?
PDF
ゴ`ルから兵めよう
VOYAGE GROUP
?
PDF
永鞄沿ではじめるオブジェクト峺(巷蝕喘)
VOYAGE GROUP
?
PDF
Sprk2012 LT
VOYAGE GROUP
?
KEY
フラットな永堰永からフレ`ムワ`クへ
VOYAGE GROUP
?
AWS SDK for Go in #jawsmeguro
VOYAGE GROUP
?
Data Engineering at VOYAGE GROUP #jawsdays
VOYAGE GROUP
?
[20140625]wwdc2014 feedback
VOYAGE GROUP
?
Google playでのリワ`ドアプリリジェクトからの書瘁のマネタイズ返粁について インタ`スティシャルレ御〜クロスプロモ`ション-
VOYAGE GROUP
?
並I坪デザイナ`のミッション┨_井 genesix 儲小ヨ寄
VOYAGE GROUP
?
[20130624]恷除の_kh廠についてしてみる sakata
VOYAGE GROUP
?
セミナ`プレゼンY創‐Adingo/ 20130529 
VOYAGE GROUP
?
セミナ`プレゼンY創‐Adingo/ 20130530 
VOYAGE GROUP
?
粥恢テストノススメ
VOYAGE GROUP
?
庄永鞄看稼艶アプリ仝トリセツ々にてg樹したリ`ンスタ`トアップ
VOYAGE GROUP
?
‐k燕喘/晦沿看ワ`クショップ゛怏岶でサイト個鋲をする圭隈゛
VOYAGE GROUP
?
干艶稼一庄稼壊と鞄温糸看看沿を旋喘した@A議デ`タ盾裂桟廠の更廏
VOYAGE GROUP
?
粥稼糸姻看庄糸におけるテストにvして?デバイスをどう僉kするか?
VOYAGE GROUP
?
スマホ涙創アプリのマネタイズについて‐粥糸庄稼乙看/
VOYAGE GROUP
?
恷仟のマ`ケットアルゴリズムと、 アルゴリズムを未まえてのプロモ`ション
VOYAGE GROUP
?
‐k燕喘/ウェブアナリスト劍撹讐恙仝晦沿看と温恢テスト々
VOYAGE GROUP
?
ゴ`ルから兵めよう
VOYAGE GROUP
?
永鞄沿ではじめるオブジェクト峺(巷蝕喘)
VOYAGE GROUP
?
Sprk2012 LT
VOYAGE GROUP
?
フラットな永堰永からフレ`ムワ`クへ
VOYAGE GROUP
?

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