SlideShare a Scribd company logo
from WEB+DB PRESS 82
 1回分使うよ! 
 第3章まとめ終わらず。
 リソースの定義の考え方 
 JSON Schema 
 もう少しJSON Schemaを調べてみたよ 
 よーしパパJSON Schema使ってみるぞ
Domain API 
• 「送信元ドメイン」を入れたり出したりするAPIをつくろう!
フィールド名名称データ型 
domain ドメイン名string 
states 状態object 
states.setup セットアップ済みフ 
ラグ 
boolean 
states.available 利用可能フラグboolean 
created リソースの作成日string 
updated リソースの更新日string 
“states” : “10” (== セットアップ=true & 利用可能=false) 
みたいに表現できなくもないけど使いづらい。 
別のオブジェクトにしておけばそれぞれ更新可能 
{ 
“domain” : “mail.example.com”, 
“states” : { 
“setup” : true, 
“available” : true 
}, 
“created” : “2014-06-01T20:12:50”, 
“updated” : “2014-06-01T20:23:16” 
}
 ちゃんと見なさい! 特に英語が苦手なあなた。 
 OpenSocial 
 http://opensocial.github.io/spec/2.5.1/Social-Data.xml#Person 
 schema.org 
 http://schema.org/ 
 Activity Streams 
 https://github.com/activitystreams/activity-schema/blob/master/activity-schema.md
フィールド名名称データ型 
domain ドメイン名string 
states 状態object 
states.setup セットアップ済みフ 
ラグ 
boolean 
states.available 利用可能フラグboolean 
created リソースの作成日string 
updated リソースの更新日string 
※写すのメンドイんでP29参照。 
title -> 何語でもご自由にの模様。 
この段階だとフォーマットが全然定義さ 
れていないので、 
日付型などフリーダム! 
※ちなみに 
Jsonに存在するデータ型は4種類の 
primitive typesと2種類のstructured 
typesのみ。 
strings, numbers, booleans, and null 
objects and arrays 
http://www.ietf.org/rfc/rfc4627.txt
 P30 
 domain -> “maxLength” : 255, “format” : “hostname” 
 States -> “default” 
 二重にdefaultが定義されてますね。 
 Created / update -> “format” : “date-time”
 P30 
 domain -> “maxLength” : 255, “format” : “hostname” 
 States -> “default” 
 二重にdefaultが定義されてますね。 
 Created / update -> “format” : “date-time” 
誰だよお 
前!?
 http://json-schema.org/ 
 Docs -> schema validation -> 7. Semantic validation with "format“ 
 7.3.1. date-time 
 7.3.2. email 
 7.3.3. hostname 
 7.3.4. ipv4 
 7.3.5. ipv6 
 7.3.6. uri
 http://json-schema.org/examples.html 
 a simple example 
 Requiredは最後にまとめて書くらしい 
 “uniqueItems” すげーイイ! ※xsdにもある模様: http://www.w3schools.com/schema/el_unique.asp 
 "warehouseLocation": { 
"description": "Coordinates of the warehouse with the product", 
"$ref": http://json-schema.org/geo 
} 
 → http://json-schema.org/documentation.html -> Standard schemas 
 Geographic Coordinate 
 Card 
 Calendar 
 Address
来週?

More Related Content

What's hot

Next-L Enju 開発WS #03 Ruby on Railsの使い方
Next-L Enju 開発WS #03 Ruby on Railsの使い方Next-L Enju 開発WS #03 Ruby on Railsの使い方
Next-L Enju 開発WS #03 Ruby on Railsの使い方Kosuke Tanabe
 
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所Yu Sugawara
 

What's hot (6)

Next-L Enju 開発WS #03 Ruby on Railsの使い方
Next-L Enju 開発WS #03 Ruby on Railsの使い方Next-L Enju 開発WS #03 Ruby on Railsの使い方
Next-L Enju 開発WS #03 Ruby on Railsの使い方
 
Ajax3
Ajax3Ajax3
Ajax3
 
test
testtest
test
 
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所
書籍「軽量・高速モバイルデータベース Realm入門」を使って学ぶRealmの勘所
 
MongoDBの使い方
MongoDBの使い方MongoDBの使い方
MongoDBの使い方
 
Couch DB for 197X
Couch DB for 197XCouch DB for 197X
Couch DB for 197X
 

More from Taichi Watanabe

ポジションペーパー
ポジションペーパーポジションペーパー
ポジションペーパーTaichi Watanabe
 
2番ペゲーロとは何だったのか
2番ペゲーロとは何だったのか2番ペゲーロとは何だったのか
2番ペゲーロとは何だったのかTaichi Watanabe
 
私がなぜ今日ユニフォームを着ているのか
私がなぜ今日ユニフォームを着ているのか私がなぜ今日ユニフォームを着ているのか
私がなぜ今日ユニフォームを着ているのかTaichi Watanabe
 
チームとプロダクトをぶっ壊した話
チームとプロダクトをぶっ壊した話チームとプロダクトをぶっ壊した話
チームとプロダクトをぶっ壊した話Taichi Watanabe
 
あの選手なんでスタメン外されたん
あの選手なんでスタメン外されたんあの選手なんでスタメン外されたん
あの選手なんでスタメン外されたんTaichi Watanabe
 
「エース」と「ローテーション」
「エース」と「ローテーション」「エース」と「ローテーション」
「エース」と「ローテーション」Taichi Watanabe
 
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LTエンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LTTaichi Watanabe
 
2014年NPBたらいまわされ十傑
2014年NPBたらいまわされ十傑2014年NPBたらいまわされ十傑
2014年NPBたらいまわされ十傑Taichi Watanabe
 
スクラムマスター1年生⇒2年生
スクラムマスター1年生⇒2年生スクラムマスター1年生⇒2年生
スクラムマスター1年生⇒2年生Taichi Watanabe
 
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-Taichi Watanabe
 
俺の「機能横断的チーム」に近づくためのあれこれ
俺の「機能横断的チーム」に近づくためのあれこれ 俺の「機能横断的チーム」に近づくためのあれこれ
俺の「機能横断的チーム」に近づくためのあれこれ Taichi Watanabe
 
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference201210%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012Taichi Watanabe
 

More from Taichi Watanabe (13)

ポジションペーパー
ポジションペーパーポジションペーパー
ポジションペーパー
 
2番ペゲーロとは何だったのか
2番ペゲーロとは何だったのか2番ペゲーロとは何だったのか
2番ペゲーロとは何だったのか
 
私がなぜ今日ユニフォームを着ているのか
私がなぜ今日ユニフォームを着ているのか私がなぜ今日ユニフォームを着ているのか
私がなぜ今日ユニフォームを着ているのか
 
チームとプロダクトをぶっ壊した話
チームとプロダクトをぶっ壊した話チームとプロダクトをぶっ壊した話
チームとプロダクトをぶっ壊した話
 
あの選手なんでスタメン外されたん
あの選手なんでスタメン外されたんあの選手なんでスタメン外されたん
あの選手なんでスタメン外されたん
 
「エース」と「ローテーション」
「エース」と「ローテーション」「エース」と「ローテーション」
「エース」と「ローテーション」
 
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LTエンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
 
Reactive Programing
Reactive ProgramingReactive Programing
Reactive Programing
 
2014年NPBたらいまわされ十傑
2014年NPBたらいまわされ十傑2014年NPBたらいまわされ十傑
2014年NPBたらいまわされ十傑
 
スクラムマスター1年生⇒2年生
スクラムマスター1年生⇒2年生スクラムマスター1年生⇒2年生
スクラムマスター1年生⇒2年生
 
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
 
俺の「機能横断的チーム」に近づくためのあれこれ
俺の「機能横断的チーム」に近づくためのあれこれ 俺の「機能横断的チーム」に近づくためのあれこれ
俺の「機能横断的チーム」に近づくためのあれこれ
 
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference201210%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012
 

Recently uploaded

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizesatsushi061452
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)keikoitakurag
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルCRI Japan, Inc.
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。iPride Co., Ltd.
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdfAyachika Kitazaki
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)NTT DATA Technology & Innovation
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptxyassun7010
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptxssuserbefd24
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...atsushi061452
 

Recently uploaded (10)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 

Web API デザインの鉄則 第2章

  • 2.  1回分使うよ!  第3章まとめ終わらず。
  • 3.  リソースの定義の考え方  JSON Schema  もう少しJSON Schemaを調べてみたよ  よーしパパJSON Schema使ってみるぞ
  • 4. Domain API • 「送信元ドメイン」を入れたり出したりするAPIをつくろう!
  • 5. フィールド名名称データ型 domain ドメイン名string states 状態object states.setup セットアップ済みフ ラグ boolean states.available 利用可能フラグboolean created リソースの作成日string updated リソースの更新日string “states” : “10” (== セットアップ=true & 利用可能=false) みたいに表現できなくもないけど使いづらい。 別のオブジェクトにしておけばそれぞれ更新可能 { “domain” : “mail.example.com”, “states” : { “setup” : true, “available” : true }, “created” : “2014-06-01T20:12:50”, “updated” : “2014-06-01T20:23:16” }
  • 6.  ちゃんと見なさい! 特に英語が苦手なあなた。  OpenSocial  http://opensocial.github.io/spec/2.5.1/Social-Data.xml#Person  schema.org  http://schema.org/  Activity Streams  https://github.com/activitystreams/activity-schema/blob/master/activity-schema.md
  • 7. フィールド名名称データ型 domain ドメイン名string states 状態object states.setup セットアップ済みフ ラグ boolean states.available 利用可能フラグboolean created リソースの作成日string updated リソースの更新日string ※写すのメンドイんでP29参照。 title -> 何語でもご自由にの模様。 この段階だとフォーマットが全然定義さ れていないので、 日付型などフリーダム! ※ちなみに Jsonに存在するデータ型は4種類の primitive typesと2種類のstructured typesのみ。 strings, numbers, booleans, and null objects and arrays http://www.ietf.org/rfc/rfc4627.txt
  • 8.  P30  domain -> “maxLength” : 255, “format” : “hostname”  States -> “default”  二重にdefaultが定義されてますね。  Created / update -> “format” : “date-time”
  • 9.  P30  domain -> “maxLength” : 255, “format” : “hostname”  States -> “default”  二重にdefaultが定義されてますね。  Created / update -> “format” : “date-time” 誰だよお 前!?
  • 10.  http://json-schema.org/  Docs -> schema validation -> 7. Semantic validation with "format“  7.3.1. date-time  7.3.2. email  7.3.3. hostname  7.3.4. ipv4  7.3.5. ipv6  7.3.6. uri
  • 11.  http://json-schema.org/examples.html  a simple example  Requiredは最後にまとめて書くらしい  “uniqueItems” すげーイイ! ※xsdにもある模様: http://www.w3schools.com/schema/el_unique.asp  "warehouseLocation": { "description": "Coordinates of the warehouse with the product", "$ref": http://json-schema.org/geo }  → http://json-schema.org/documentation.html -> Standard schemas  Geographic Coordinate  Card  Calendar  Address