Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Google API Design Guideを読んだまとめ
Search
peka2
May 09, 2017
Technology
0
87
Google API Design Guideを読んだまとめ
Google API Design GuideからAPI設計を学ぶ
peka2
May 09, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
AWS Organizations 新機能!マルチパーティ承認の紹介
yhana
1
270
B2C&B2B&社内向けサービスを抱える開発組織におけるサービス価値を最大化するイニシアチブ管理
belongadmin
1
6.2k
ドメイン特化なCLIPモデルとデータセットの紹介
tattaka
2
580
敢えて生成AIを使わないマネジメント業務
kzkmaeda
2
380
Operating Operator
shhnjk
1
510
Model Mondays S2E03: SLMs & Reasoning
nitya
0
350
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
2
6.3k
OSSのSNSツール「Misskey」をさわってみよう(右下ワイプで私のOSCの20年を振り返ります) / 20250705-osc2025-do
akkiesoft
0
140
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
7
5.1k
Understanding_Thread_Tuning_for_Inference_Servers_of_Deep_Models.pdf
lycorptech_jp
PRO
0
180
PO初心者が考えた ”POらしさ”
nb_rady
0
190
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
180
Featured
See All Featured
Done Done
chrislema
184
16k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Designing for humans not robots
tammielis
253
25k
Building Adaptive Systems
keathley
43
2.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
52k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Adopting Sorbet at Scale
ufuk
77
9.4k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Six Lessons from altMBA
skipperchong
28
3.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Transcript
Google API Design Guide Λ ಡΜͩ·ͱΊ @peka2
APIྺ • Yahoo! ϘοΫε APIઃܭɾ։ൃ • ϠϑΦΫAPIΨΠυϥΠϯ࡞ • ϠϑΦΫΞϓϦAPIઃܭɾ։ൃ
Ϟνϕʔγϣϯ • ࠷ۙެ։͞ΕͨAPIσβΠϯΨΠυ • TechGiantAPIઃܭ͔Βֶͼ͍ͨ
Google API Design Guideͱ • https://cloud.google.com/apis/design/ • 2017 2/20 ʹެ։͞Εͨ
• 2014͔ΒGoogle෦Ͱ࣮ࡍʹΘΕ͍ͯΔAPIσβΠϯΨ Πυ • REST, gRPC ͲͪΒʹͰ͑ΔΑ͏ʹ࡞ΒΕͯΔ • ܾఆ൛Ͱͳ͘ɺʑه͞Ε͍ͯ͘
Google API Design Guide • جຊRESTful
ΧελϜϝιου • httpϝιουʹϚοϐϯάͰ͖ͳ͍ૢ࡞ʹରͯ͠ɺ࡞ͬͯྑ ͍ • :ಈࢺ Λ࠷ޙʹ͚ͭͯࣔ͢ • ϝιουॊೈͰ͋ΔPOSTΛਪ •
PATCHͰ͏͖Ͱͳ͍ https://service.name/v1/some/resource/name:customVerb
ΧελϜϝιου༻ྫ • VM࠶ىಈ • ঢ়ଶͷભҠΛߦ͏APIɺ࠶ىಈϦιʔεΛ࡞ΔAPIΑΓɺΧελϜϝ ιουͷํ͕ײత • ϝʔϧૹ৴ • υϥϑτˠૹ৴τϨΠҠಈɺͱ͍͏σβΠϯΑΓɺΧελϜϝιο
υͷํ͕ײత • RESTfulʹͩ͜ΘΔΑΓɺϢʔβ͕ײతʹΘ͔Δ͜ͱ͕ॏཁ
ͦͦRESTfulͬͯ • ։ൃऀؒͷηϚϯςΟοΫΪϟοϓΛຒΊΔ͜ͱͰɺ୭ʹ ͰײతͳAPIΛઃܭͰ͖Δͷ͕རͷҰͭ • ແཧΓRESTfulΛద༻͢Δ͜ͱͰখ͍͠APIʹͳͬͯ ͠·͏ͳΒɺΧελϜϝιουͷ΄͏͕ײత
Τϥʔදݱ • Τϥʔίʔυগͳ͚Εগͳ͍΄Ͳɺ ΫϥΠΞϯτͷϩδοΫ͕ෳࡶʹͳΒ ͳͯ͘ࡁΉ • https://github.com/googleapis/ googleapis/blob/master/google/ rpc/code.proto •
15छྨ • statusʢΤϥʔίʔυʣྻͰͳ ͘ɺਓؒͰಡΊΔӳ୯ޠΛͬͯΔ
ϖʔδωʔγϣϯ • ϦετԽͰ͖ΔίϨΫγϣϯͲΜͳখ͞ͳͷͰϖʔδωʔ γϣϯΛ࣮͓͖ͯ͘͠ • طଘͷAPIʹϖʔδωʔγϣϯΛޙ͔Β࣮͢Δͱɺݩʑશ݅ ฦ͍ͯͨ͠ͷ͕̍ϖʔδʢσϑΥϧτϖʔδʣͷΈฦ͢ɺ ͱ͍͏Α͏ͳڍಈͷมߋ͕ൃੜͯ͠͠·͏͔Β • ϦΫΤετɿpage_sizeͱpage_token
Ϩεϙϯεɿnext_page_token
ଞ • *Ͱͳ͘-Λ͍·͠ΐ͏ • URLΤεέʔϓͷ߹্ • ϦιʔεͷҰ෦ͷϑΟʔϧυ͚ͩฦͤΔΑ͏ʹ͢Δͱศར • ϦιʔεΛfullͰͳ͘basicͳͷ͚ͩड͚औΕΔΑ͏ʹ͢Δͱศར •
APIυΩϡϝϯτͷ࡞Γํ • ͳͲͳͲɾɾɾ
·ͱΊ • RESTfulΛਪ͍ͯ͠Δ͕ײతͳઃܭΛॏࢹ • ෳαʔϏεͰ༷͕ࠞ͠ͳ͍Α͏ʹɺϖʔδωʔγϣϯ ͳͲϧʔϧ͕ݫ֨ʹܾ·͍ͬͯΔ • ༷ͱυΩϡϝϯτprotoϑΝΠϧͰཧ • APIઃܭͷࢿྉͱͯ͠े·ͱ·͍ͬͯͯ͑ͦ͏
https://speakerdeck.com/hirak/mercariday2017-api
• LSUDs • ͖Ε͍ͳAPI • SSKDs • ࣮ʼඒ͠͞ • վम͠·͘ΕΔઃܭ