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
やはり俺のWeb APIは間違えている
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Shinichi Kozake
September 13, 2019
Technology
580
0
Share
やはり俺のWeb APIは間違えている
社内勉強会
クラウド・マイクロサービス勉強会#4の発表資料です。
Shinichi Kozake
September 13, 2019
More Decks by Shinichi Kozake
See All by Shinichi Kozake
アーキテクトとは
kozake
0
2.4k
Ionic React でサービス開発したお話
kozake
0
190
ドキッ!失敗だらけのシステム開発
kozake
1
880
すごい大規模 たのしく作ろう
kozake
4
2.6k
KHipster ~JHipsterで始めるKotlin Web プログラミング~
kozake
0
960
Docker with JHipster
kozake
1
610
実践JHipster #jsug #sf_36
kozake
2
7.9k
Ionicでアプリ作ったよ!開発方法の紹介
kozake
2
1.1k
アプリ作ろうぜ! Yomoo!ってアプリを作ったよ! #kanjava
kozake
0
1.7k
Other Decks in Technology
See All in Technology
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
5
4k
タクシーアプリ『GO』の実践的データ活用
mot_techtalk
2
140
JEP 522 Deep Dive - G1 GC同期コスト削減によるスループット向上を徹底検証&解説
tabatad
1
830
AI Testing Talks: Challenges of Applying AI in Software Testing: From Hype to Practical Use
exactpro
PRO
1
130
Building applications in the Gemini API family.
line_developers_tw
PRO
0
1.4k
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.9k
速さだけじゃない! VoidZero ツールが移行先に選ばれる理由
mizdra
PRO
6
750
製造業のクラウド活用最適解〜AI,DXを加速するデータ基盤の作り方〜
hamadakoji
0
370
個人の発見を、組織の知恵に 〜生成AI活用を"探索"から"組織の仕組み"へ〜
kintotechdev
2
960
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
1
330
はじめてのDatadog
kairim0
0
280
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
240
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
300
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
250
From π to Pie charts
rasagy
0
200
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
600
Thoughts on Productivity
jonyablonski
76
5.2k
エンジニアに許された特別な時間の終わり
watany
107
250k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
130
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Transcript
Awesome Web API Design ޭ͢Δ8FC"1*σβΠϯͱ ΫϥυɾϚΠΫϩαʔϏεษڧձ
ͱ͍͏͠·ͤΜ
8FC"1*ઃܭͷ ྑॻΛಡΈ·͠ΐ͏ʂ ͋ͱͰհ͠·͢
ຊͷλΠτϧ
ΓԶͷ Web API ·͕͍ͪͬͯΔɻ ͱ͋Δ3&45ͷߟه ΫϥυɾϚΠΫϩαʔϏεษڧձ
ࣗݾհ 名前 ジョブ スキル こざけ しんいち システムアーキテクト Java 資格 アプリケーションエンジニア
テクニカルエンジニア(DB) 安全確保支援士
"CPVU3&45
8IZ3&45 "+"9Λۦͨ͠8FC։ൃ εϚʔτϑΥϯͷීٴ खܰʹࢼͤΔ༧ଌ͍͢͠
σʔλ࿈ܞ ࢄΦϒδΣΫτ 8FCαʔϏε 8FC"1* +BWB3.*ɾ&+# $03#" 9.-31$ 40"1 3&45 3&45͓खܰʂ
8IBU3&45 3&QSFTFOUBUJPOBM4UBUF5SBOTGFS ϦιʔεࢦΞʔΩςΫνϟͷ࣮ Ϧιʔεͷঢ়ଶΛදݱͨ͠ͷΛసૹ͢Δ͜ͱɻ 3&45ΞʔΩςΫνϟͱ͍͏ͷଘࡏ͠ͳ͍ɻ 3&45Ұ࿈ͷઃܭ݅ɻ
8IBU30" ͭͷ֓೦ ͭͷಛੑ Ϧιʔε ໊લ 63* දݱ ϦιʔεؒͷϦϯΫ ΞυϨεՄೳੑ εςʔτϨεੑ
ଓੑ ౷ҰΠϯλʔϑΣʔε
8IBU30" (&5VTFSTLP[BLF \ pSTU/BNF৴Ұ MBTU/BNFখञ BHF CPEZ8FJHIU
^ )551ϝιου ʹΑΔ౷Ұ*' Ϧιʔεͷ63- Ϧιʔεͷදݱ ɾ+40/ܗࣜ ɾຊޠ
ͦͷઃܭख๏30"Ͱ͔͢ʁ IUUQTqJDLSQNT;"
Α͋͘Δઃܭख๏ Ϣʔεέʔεਤ
Α͋͘Δઃܭख๏ ΞΫςΟϏςΟਤ
Α͋͘Δઃܭख๏ ը໘ۦಈઃܭ
ͦͷઃܭख๏30"Ͱ͔͢ʁ γεςϜͱར༻ऀͷڥքΛੳ͠ɺ ιϑτΣΞͷػೳ୯ҐΛநग़͢Δઃܭख๏ αʔϏεࢦ
ϦιʔεࢦͱαʔϏεࢦ Ϧιʔεࢦ αʔϏεࢦ ɾϦιʔεΛத৺ʹߟ͑Δ ɾ࣮ߦ͞ΕΔϝιουʢػೳʣ ɹΑΓϦιʔεʢσʔλϞσϧʣ ɹΛॏࢹ͢Δ ɾϦιʔε໊ࢺͰఆٛͰ͖Δ ɹʢྫ͑ɺlϏσΦͷϨϯλϧzʣ ɾػೳΛத৺ʹߟ͑Δ
ɾར༻ऀଆ͔ΒݟͨιϑτΣΞͷ ɹαʔϏεʢػೳʣͷΈ߹Θͤ ɹͰγεςϜߏஙΛ͢Δ ɾαʔϏεಈࢺͰఆٛͰ͖Δ ɹʢྫ͑ɺlϏσΦΛϨϯλϧ͢Δzʣ ɾ໊ࢺɺΦϒδΣΫτ໊ɺର୯Ґ ɹͰ"1*Λཧ͢Δ ɾಈࢺɺίϚϯυ໊ɺϝιου໊୯Ґ ɹͰ"1*Λཧ͢Δ
ϦιʔεࢦͱαʔϏεࢦ Ϧιʔεࢦ αʔϏεࢦ $MJFOU 3FTPVSDF $MJFOU 4FSWJDF (&5 1045 165
%&-&5& */70,& */70,& */70,& */70,& 4FSWJDF 4FSWJDF 4FSWJDF αʔϏε͕8FCʹ͓͚Δ31$ͳΒɺ 3&458FCʹ͓͚Δ%#.4
ͦͷΞϓϦέʔγϣϯ 3&45ʹै͏ඞཁ͋Γ·͔͢ʁ IUUQTqJDLSQNT;"
-46%TʢMBSHFTFUPGVOLOPXOEFWFMPQFSTʣͱ 44,%TʢTNBMMTFUPGLOPXOEFWFMPQFSTʣͱ͍͏֓೦ ͱ͋Δ3&45ͷߟ ୭͕͏͔Θ͔Βͳ͍-46%T͚ͷ"1*ɺ͞·͟·ͳϢʔεέʔεΛఆͯ͠ͳΔ͘ ൚༻తʹ͠ͳ͚ΕͳΒͳ͍ 44,%T͚ͷ"1*ಛఆͷ։ൃऀͦͷઌʹଘࡏ͢ΔΤϯυϢʔβʹͱͬͯศརͰ͍ ͍͢ͷʹͳΔͣ ʮඒ͠͞ʯͷఆٛେ͖͘ҧ͏ͣ ʙॻ੶ʮ8FC"1*5IF(PPE1BSUTʯQΑΓҾ༻ʙ
Αʔ͘ߟ͑ΑʙࢦେࣄͩΑʙ σʔλ࿈ܞํࣜΞϓϦέʔγϣϯͷछྨʹґଘ͢Δɻ ɾͻͱͭͷΞʔΩςΫνϟʔʹݻࣥ͢Δඞཁੑ͋Δ͔ʁ ɾΞϓϦέʔγϣϯಛੑΛجʹΞʔΩςΫνϟͷબΛߦͳ͏͖Ͱʁ ۀܥΞϓϦέʔγϣϯʹ͓͍ͯɺ ϦιʔεΑΓαʔϏεʹয͕͋ͨΓ͍͢ɻ ͱ͋Δ3&45ͷߟ ͦͦϦιʔεࢦʹԠͨ͡ઃܭख๏͕࠾ΒΕ͍ͯΔ͔ʁ
ͱ͋Δ3&45ͷߟ ڞ௨ͷαʔό"1* ΞϓϦέʔγϣ" ͚ʹΠϯλʔ ϑΣΠεΛม ΞϓϦέʔγϣ# ͚ʹΠϯλʔ ϑΣΠεΛม ΞϓϦέʔγϣ$ ͚ʹΠϯλʔ
ϑΣΠεΛม ΞϓϦέʔγϣ% ͚ʹΠϯλʔ ϑΣΠεΛม ΞϓϦέʔγϣ" ΞϓϦέʔγϣ# ΞϓϦέʔγϣ$ ΞϓϦέʔγϣ% αʔό ΫϥΠΞϯτ Φʔέετ Ϩʔγϣϯ ʙॻ੶ʮ8FC"1*5IF(PPE1BSUTʯQΑΓҾ༻ʙ ʰ/FUqJYࣾͰ04'"ʢPOFTJ[FpUTBMMʣͷΞϓϩʔνΛΊɺαʔόʔଆͷ൚༻తͳ "1*ͱΫϥΠΞϯτͷؒʹz$MJFOU"EBQUFS$PEFzΛ࣮ߦ͢ΔΛڬΈɺ͞·͟·ͳͰσό ΠεʹରԠͰ͖ΔΑ͏ʹ͍ͯ͠·͢ɻʱ
ͱ͋Δ3&45ͷߟ ϏσΦϨϯλϧγεςϜͰߟ͑ͯΈΔ
·ͱΊ
3&45ʹै͏͔ͷબɺ ։ൃ͢ΔΞϓϦέʔγϣϯʹͱͬͯ Կ͕࠷ॏཁͰ͋Δ͔ʹΏͩͶΒΕΔɻ ·ͱΊ ߹ʹΑͬͯɺ୯ͳΔٕज़ํࣜͱͯ͠3&45Λ࠾༻͢Δ͚ͩͰ͍͍͔͠Εͳ͍ɻ ͜Ε࠶ར༻ͷߟ͑ํʹࣅ͍ͯΔؾ͕͢Δɻ ຊʹͦΕίετΛͬͯ࠶ར༻͢Δͷ͔ʁΛߟ͑Δඞཁ͕͋Δɻ
4JNQMFJTOPU&BTZ ·ͱΊ &BTZɺ݁ՌΛੜ͢ΔͨΊͷ࠷খݶͷ࿑ྗɻ γϯϓϧɺॏཁͳͷҎ֎ͷͯ͢Λআ͢Δ͜ͱɻ
ॻ੶հ
αΠτհ $MPVE"1* "1*ઃܭΨΠυ IUUQTDMPVEHPPHMFDPNBQJTEFTJHO IMKB Ҏདྷ(PPHMF෦Ͱ༻͞Εɺ$MPVE"1*ͦͷଞͷ (PPHMF"1*Λઃܭ͢Δͱ͖ʹ(PPHMF͕ै͏ΨΠυ
αΠτհ 8FC"1*%FTJHO $SBGUJOH*OUFSGBDFTUIBU%FWFMPQFST-PWF IUUQTQBHFTBQJHFFDPNSTBQJHFFJNBHFT BQJEFTJHOFCPPLQEG
ࢀߟʹͨ͠αΠτ ѹతײँ 8FC"1*ͱԿͳͷ͔ ϦιʔεࢦΞʔΩςΫνϟ 30" ͱԿͳͷ͔ Ϧιʔεࢦ8FCαʔϏεͱΞΫςΟϏςΟʔࢦ8FCαʔϏεΛൺֱ͢Δ 40"ͷະདྷ3&45͔ 40"1ͱ3&45ͷҧ͍ʹ͍ͭͯΘ͔Γ͘͢ڭ͍͚͑ͯͨͩ·ͤΜͰ͠ΐ͏͔ʁ https://qiita.com/NagaokaKenichi/items/df4c8455ab527aeacf02
https://qiita.com/NagaokaKenichi/items/0f3a55e422d5cc9f1b9c https://www.ibm.com/developerworks/jp/webservices/library/ws-restvsoap/index.html https://teratail.com/questions/34703 https://www.infoq.com/jp/articles/RESTSOAFuture/
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ ͓ΘΓ