Enviar pesquisa
Carregar
JSON Based Web Services
•
Transferir como KEY, PDF
•
7 gostaram
•
2,532 visualizações
Toru Yamaguchi
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 39
Baixar agora
Recomendados
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
uedayou
20140903groonga発表資料
20140903groonga発表資料
Hironobu Saitoh
はじめてのCouch db
はじめてのCouch db
Eiji Kuroda
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門
Yohei Sasaki
Project lambda
Project lambda
Appresso Engineering Team
Beginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_study
ikeyat
MyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatype
Toshi Harada
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ
朋哉 池田
Recomendados
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
uedayou
20140903groonga発表資料
20140903groonga発表資料
Hironobu Saitoh
はじめてのCouch db
はじめてのCouch db
Eiji Kuroda
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門
Yohei Sasaki
Project lambda
Project lambda
Appresso Engineering Team
Beginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_study
ikeyat
MyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatype
Toshi Harada
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ
朋哉 池田
My Interview with Healthy code Magazine: Future of Android Design
My Interview with Healthy code Magazine: Future of Android Design
Shyamala Prayaga
Enterprise-приложения: Web против Objective C
Enterprise-приложения: Web против Objective C
Diana Dymolazova
Besides Objective-C
Besides Objective-C
Jiwei Xu
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developers
lisab517
HealthyCodeMay2014
HealthyCodeMay2014
Shyamala Prayaga
Parte II Objective C
Parte II Objective C
Paolo Quadrani
Advanced iOS
Advanced iOS
Pete Goodliffe
Iphone programming: Objective c
Iphone programming: Objective c
Kenny Nguyen
Objective c slide I
Objective c slide I
Diksha Bhargava
Objective-C Crash Course for Web Developers
Objective-C Crash Course for Web Developers
Joris Verbogt
Json
Json
Shyamala Prayaga
باللغة العربية JSON دورة
باللغة العربية JSON دورة
anees abu-hmaid
Angular js دورة
Angular js دورة
anees abu-hmaid
Canvas دورة باللغة العربية
Canvas دورة باللغة العربية
anees abu-hmaid
JSON: The Basics
JSON: The Basics
Jeff Fox
Zabbix API
Zabbix API
Shuhei Hayashibara
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
Amazon Web Services Japan
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
Takeshi Ogawa
10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation
Kazuyuki Honda
OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!
Naruhiko Ogasawara
速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-
Kazunari Hara
Couchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 Omoidenote
kitsugi
Mais conteúdo relacionado
Destaque
My Interview with Healthy code Magazine: Future of Android Design
My Interview with Healthy code Magazine: Future of Android Design
Shyamala Prayaga
Enterprise-приложения: Web против Objective C
Enterprise-приложения: Web против Objective C
Diana Dymolazova
Besides Objective-C
Besides Objective-C
Jiwei Xu
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developers
lisab517
HealthyCodeMay2014
HealthyCodeMay2014
Shyamala Prayaga
Parte II Objective C
Parte II Objective C
Paolo Quadrani
Advanced iOS
Advanced iOS
Pete Goodliffe
Iphone programming: Objective c
Iphone programming: Objective c
Kenny Nguyen
Objective c slide I
Objective c slide I
Diksha Bhargava
Objective-C Crash Course for Web Developers
Objective-C Crash Course for Web Developers
Joris Verbogt
Json
Json
Shyamala Prayaga
باللغة العربية JSON دورة
باللغة العربية JSON دورة
anees abu-hmaid
Angular js دورة
Angular js دورة
anees abu-hmaid
Canvas دورة باللغة العربية
Canvas دورة باللغة العربية
anees abu-hmaid
JSON: The Basics
JSON: The Basics
Jeff Fox
Destaque
(15)
My Interview with Healthy code Magazine: Future of Android Design
My Interview with Healthy code Magazine: Future of Android Design
Enterprise-приложения: Web против Objective C
Enterprise-приложения: Web против Objective C
Besides Objective-C
Besides Objective-C
iPhone Development For Experienced Web Developers
iPhone Development For Experienced Web Developers
HealthyCodeMay2014
HealthyCodeMay2014
Parte II Objective C
Parte II Objective C
Advanced iOS
Advanced iOS
Iphone programming: Objective c
Iphone programming: Objective c
Objective c slide I
Objective c slide I
Objective-C Crash Course for Web Developers
Objective-C Crash Course for Web Developers
Json
Json
باللغة العربية JSON دورة
باللغة العربية JSON دورة
Angular js دورة
Angular js دورة
Canvas دورة باللغة العربية
Canvas دورة باللغة العربية
JSON: The Basics
JSON: The Basics
Semelhante a JSON Based Web Services
Zabbix API
Zabbix API
Shuhei Hayashibara
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
Amazon Web Services Japan
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
Takeshi Ogawa
10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation
Kazuyuki Honda
OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!
Naruhiko Ogasawara
速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-
Kazunari Hara
Couchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 Omoidenote
kitsugi
PGCon.jp 2014 jsonb-datatype-20141205
PGCon.jp 2014 jsonb-datatype-20141205
Toshi Harada
再帰的 正規表現JSON Validator
再帰的 正規表現JSON Validator
takesako
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話
Masahito Zembutsu
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.0.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.0.0対応)
fisuda
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5
Nishida Kansuke
Connect with Data API
Connect with Data API
Hajime Fujimoto
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.6.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.6.0対応)
fisuda
HTML5&API総まくり
HTML5&API総まくり
Shumpei Shiraishi
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.2.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.2.0対応)
fisuda
JSON SchemaとPHP
JSON SchemaとPHP
Hiraku Nakano
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Toshi Harada
BDD勉強会 第6回
BDD勉強会 第6回
zakihaya
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.1.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.1.0対応)
fisuda
Semelhante a JSON Based Web Services
(20)
Zabbix API
Zabbix API
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation
OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!
速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-
Couchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 Omoidenote
PGCon.jp 2014 jsonb-datatype-20141205
PGCon.jp 2014 jsonb-datatype-20141205
再帰的 正規表現JSON Validator
再帰的 正規表現JSON Validator
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.0.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.0.0対応)
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5
Connect with Data API
Connect with Data API
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.6.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.6.0対応)
HTML5&API総まくり
HTML5&API総まくり
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.2.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 2.2.0対応)
JSON SchemaとPHP
JSON SchemaとPHP
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatype
BDD勉強会 第6回
BDD勉強会 第6回
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.1.0対応)
NGSIv1 を知っている開発者向けの NGSIv2 の概要 (Orion 3.1.0対応)
Mais de Toru Yamaguchi
これからの Microservices
これからの Microservices
Toru Yamaguchi
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
Toru Yamaguchi
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Toru Yamaguchi
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
Toru Yamaguchi
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)
Toru Yamaguchi
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi
How to bake delicious cookie (RESTful Meetup #03)
How to bake delicious cookie (RESTful Meetup #03)
Toru Yamaguchi
Yapc asia 2011_zigorou
Yapc asia 2011_zigorou
Toru Yamaguchi
ngCore engine for mobage platform
ngCore engine for mobage platform
Toru Yamaguchi
Inside mobage platform
Inside mobage platform
Toru Yamaguchi
mbga Open Platform and Perl
mbga Open Platform and Perl
Toru Yamaguchi
Inside mbga Open Platform API architecture
Inside mbga Open Platform API architecture
Toru Yamaguchi
Introduction OpenID Authentication 2.0 Revival
Introduction OpenID Authentication 2.0 Revival
Toru Yamaguchi
OpenID Mobile Profile
OpenID Mobile Profile
Toru Yamaguchi
Introduction OpenID Authentication 2.0
Introduction OpenID Authentication 2.0
Toru Yamaguchi
OpenID 2009
OpenID 2009
Toru Yamaguchi
Mobile Openid
Mobile Openid
Toru Yamaguchi
Client Side Cache
Client Side Cache
Toru Yamaguchi
The Security of OpenID Authentication 2.0
The Security of OpenID Authentication 2.0
Toru Yamaguchi
Customization of DBIC::Schema::Loader
Customization of DBIC::Schema::Loader
Toru Yamaguchi
Mais de Toru Yamaguchi
(20)
これからの Microservices
これからの Microservices
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
How to bake delicious cookie (RESTful Meetup #03)
How to bake delicious cookie (RESTful Meetup #03)
Yapc asia 2011_zigorou
Yapc asia 2011_zigorou
ngCore engine for mobage platform
ngCore engine for mobage platform
Inside mobage platform
Inside mobage platform
mbga Open Platform and Perl
mbga Open Platform and Perl
Inside mbga Open Platform API architecture
Inside mbga Open Platform API architecture
Introduction OpenID Authentication 2.0 Revival
Introduction OpenID Authentication 2.0 Revival
OpenID Mobile Profile
OpenID Mobile Profile
Introduction OpenID Authentication 2.0
Introduction OpenID Authentication 2.0
OpenID 2009
OpenID 2009
Mobile Openid
Mobile Openid
Client Side Cache
Client Side Cache
The Security of OpenID Authentication 2.0
The Security of OpenID Authentication 2.0
Customization of DBIC::Schema::Loader
Customization of DBIC::Schema::Loader
Último
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Último
(9)
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
JSON Based Web Services
1.
JSON based
Web Service Toru Yamaguchi <zigorou@cpan.org>
2.
JSON Pointer
3.
JSON Pointer とは •
XML で言う所の XPath に相当するもの • Spec • http://tools.ietf.org/html/draft-ietf- appsawg-json-pointer-04
4.
JSON Pointer の
ABNF json-pointer = *( "/" reference-token ) reference-token = *( unescaped / escaped ) unescaped = %x00-2E / %x30-7D / %x7F-10FFFF escaped = "~" ( "0" / "1" )
5.
JSON Pointer と
Object Access JSON Pointer Object Access obj / obj[""] /foo obj["foo"] /0 obj[0] /foo/2 obj["foo"][2] /0/bar obj[0]["bar"]
6.
Example (1) JSON Document
JSON Pointer { "foo": ["bar", "baz"], "": 0, "a/b": 1, "c%d": 2, "e^f": 3, "g|h": 4, "ij": 5, "k"l": 6, " ": 7, "m~n": 8 }
7.
Example (2) JSON Document
JSON Pointer { "foo": ["bar", "baz"], "": 0, "a/b": 1, // the whole document "c%d": 2, json_pointer(doc, "") "e^f": 3, "g|h": 4, "ij": 5, "k"l": 6, " ": 7, "m~n": 8 }
8.
Example (3) JSON Document
JSON Pointer { "foo": ["bar", "baz"], "": 0, "a/b": 1, json_pointer(doc, "/foo") "c%d": 2, "e^f": 3, "g|h": 4, "ij": 5, "k"l": 6, " ": 7, "m~n": 8 }
9.
Example (4) JSON Document
JSON Pointer { "foo": ["bar", "baz"], "": 0, "a/b": 1, json_pointer(doc, "/foo/0") "c%d": 2, "e^f": 3, "g|h": 4, "ij": 5, "k"l": 6, " ": 7, "m~n": 8 }
10.
Example (5) JSON Document
JSON Pointer { "foo": ["bar", "baz"], "": 0, "a/b": 1, json_pointer(doc, "/") "c%d": 2, "e^f": 3, "g|h": 4, "ij": 5, "k"l": 6, " ": 7, "m~n": 8 }
11.
Example (5) JSON Document
JSON Pointer { "foo": ["bar", "baz"], "": 0, "a/b": 1, // escaped "/" as "~1" "c%d": 2, json_pointer(doc, "/a~1b") "e^f": 3, "g|h": 4, "ij": 5, "k"l": 6, " ": 7, "m~n": 8 }
12.
Example (6) JSON Document
JSON Pointer { "foo": ["bar", "baz"], "": 0, "a/b": 1, // slash and one space "c%d": 2, json_pointer(doc, "/ ") "e^f": 3, "g|h": 4, "ij": 5, "k"l": 6, " ": 7, "m~n": 8 }
13.
Example (5) JSON Document
JSON Pointer { "foo": ["bar", "baz"], "": 0, "a/b": 1, // escaped "~" as "~0" "c%d": 2, json_pointer(doc, "/m~0n") "e^f": 3, "g|h": 4, "ij": 5, "k"l": 6, " ": 7, "m~n": 8 }
14.
Usage of JSON
Pointer • 任意の要素を指し示す事が出来る • WAF 等でも primitive なデータの探索、取 得に使える (c.f. Mojolicious) • URI Fragment Identifier Representation (Section 6) • JSON Document 中の任意の要素を表す URI を提供出来る (とても大事)
15.
JSON Patch
16.
JSON Patch とは •
Text の差分に対する diff/patch • JSON の差分に対する JSON Patch • http://tools.ietf.org/html/draft-ietf-appsawg-json- patch-05 • 差分を表現する JSON Patch document • 差分を適用する operation • MongoDB の operator にちょっと似ている
17.
JSON Patch Example [
{ "op": "test", "path": "/a/b/c", "value": "foo" }, { "op": "remove", "path": "/a/b/c" }, { "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] }, { "op": "replace", "path": "/a/b/c", "value": 42 }, { "op": "move", "path": "/a/b/c", "to": "/a/b/d" }, { "op": "copy", "path": "/a/b/c", "to": "/a/b/e" } ]
18.
JSON Patch document •
全体としては配列 • 配列の各要素に operation を表す object が入る • 各 operation object には op, path というフィールドがある • op はオペレーション名 • path は適用対象を示す JSON Pointer • 各 operation object には引数のような key-value が指定さ れる (value, to)
19.
Operation の適用 • operation
object 配列の各要素を先頭か ら順番に適用していきます • 途中で error が発生した場合は処理が終 了します
20.
Operation - add JSON
Patch Document • JSON Pointer で指定され た path に value で指定 { された値を追加する "op": "add", "path": "/a/b/c", "value": ["foo", "bar"] • path は root か存在する object または array でな } ければならない
21.
Operation - remove JSON
Patch Document • JSON Pointer で指定され た target を削除する { "op": "remove", "path": "/a/b/c" • path は存在する物でな ければならない }
22.
Operation - replace JSON
Patch Document • JSON Pointer で指定され た target の値を value で { 指定された物と置き換 "op": "replace", える "path": "/a/b/c", "value": 42 } • path は存在する物でな ければならない
23.
Operation - move JSON
Patch Document • JSON Pointer で指定された path を to で指定された場所 { に移動する "op": "move", "path": "/a/b/c", • path の内容を remove "to": "/a/b/d" • remove された物を add } • to が配列の要素を指定して いる場合に幾つか制約があ る
24.
Operation - copy JSON
Patch Document • JSON Pointer で指定され た path を to で指定され { た場所に複製する "op": "copy", "path": "/a/b/c", "to": "/a/b/d" • to が配列の要素を指定 している場合に幾つか } 制約がある
25.
Operation - test JSON
Patch Document • JSON Pointer で指定され た path の値が value で { 指定された物と一致す "op": "test", るか確認する "path": "/a/b/c", "value": "foo" } • 一致しない場合は後 続の operation が実行 されず、即座にエラー になる
26.
Usage of JSON
Patch • Media Type が "application/json-patch" と なっているので RESTful API で PATCH メソッドと共に差分適用を表現する • See RFC 5789 • JSON 相当で記述された設定のプリプロ セッサなど
27.
JSON Schema
28.
JSON Schema とは •
http://json-schema.org/ • http://tools.ietf.org/html/draft-zyp-json-schema-03 • 暫く動きが見えないけど現在 draft-04 策定 中です • JSON Document に対して Validation, Documentation, Hyperlink を与える為のスキー マ記述形式のこと
29.
Validation &
Documentation • だいぶ syntax が多いので詳細は割愛し ます:( • 詳しくは Spec 見て下さい • 基本的には primitive な値に対して制約 をつける事が出来ます
30.
Schema for OAuth
2.0 - Authorization Code Grant { "id": "http://schema.example.com/oauth/2.0/authorization_request", "title": "OAuth 2.0 Authorization Code Grant Response Object", "properties": { "code": { "title": "The authorization code", "type": "string", "required": true }, "state": { "title": "An opaque value", "type": "string", "required": false } } }
31.
Explain for the
schema • Authorization Code Grant の Authorization Request の クエリパラメータについての Schema になっています • title, description で documentation が可能です • type で型を指定し、型ごとに指定可能な制約やデ フォルト値等が指定出来ます • また type は JSON Pointer を使って任意の JSON Schema の任意の要素の定義を参照する事が出来ます
32.
Hyperlinks • JSON Document
に Hyperlink を与える為 の JSON Schema の拡張 • 具体的には Schema に対する relation, endpoint, http method, encoding type, request property 等を指定出来る
33.
Extending Schema for
OAuth 2.0 Authorization Code Grant { "id": "http://schema.example.com/oauth/2.0/authorization_request", "title": "OAuth 2.0 Authorization Code Grant Response Object", "properties": { }, "links": [ { "title": "Authorization endpoint", "href": "http://connect.example.com/authorize", "rel": "create", "enctype": "application/x-www-form-urlencoded" "properties": { "response_type": {}, "client_id": {}, "redirect_uri": {}, "scope": {}, "state": {} } } ] }
34.
Explain to the
hyper schema • https://gist.github.com/3838576 に完全版を書いてみまし た • Authorization Response を Resource として、この Resource を作成する為の Hyperlink を定義しました。 • method, enctype, properties で request format も定義 出来る • rel で指定可能な物は大体記述可能なので Service Descriptor のような使い方も出来る
35.
Conclusion
36.
JSON Pointer •
シンプルなのでデータ取得方法として様々 な所で利用用途がある • JSON Patch で利用されている • また JSON Document の内部リンクとして も利用価値がある • JSON Schema で利用されている
37.
JSON Patch • RESTful
API で PUT メソッドを利用した Partial Update (要は差分適用) の代わり に PATCH メソッド + JSON Patch が使 える • ex) OpenSocial Appdata API
38.
JSON Schema •
Validation として様々な言語から再利用可能 • Documentation はツールが整備されれば将来性あり • http://sk-api-browser.heroku.com/ などの事例もある • Hyperlink まで利用すると API の記述言語としても使 える • 応用すれば Facebook Graph API Explorer のように 結果に対して適切なリンクを貼る事も可能
39.
Thanks • Any question?
Notas do Editor
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Baixar agora