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
Shinichi Kozake
September 13, 2019
Technology
0
540
やはり俺のWeb APIは間違えている
社内勉強会
クラウド・マイクロサービス勉強会#4の発表資料です。
Shinichi Kozake
September 13, 2019
Tweet
Share
More Decks by Shinichi Kozake
See All by Shinichi Kozake
アーキテクトとは
kozake
0
2.2k
Ionic React でサービス開発したお話
kozake
0
150
ドキッ!失敗だらけのシステム開発
kozake
1
840
すごい大規模 たのしく作ろう
kozake
4
2.5k
KHipster ~JHipsterで始めるKotlin Web プログラミング~
kozake
0
900
Docker with JHipster
kozake
1
570
実践JHipster #jsug #sf_36
kozake
2
7.7k
Ionicでアプリ作ったよ!開発方法の紹介
kozake
2
1k
アプリ作ろうぜ! Yomoo!ってアプリを作ったよ! #kanjava
kozake
0
1.6k
Other Decks in Technology
See All in Technology
Evolution on AI Agent and Beyond - AGI への道のりと、シンギュラリティの3つのシナリオ
masayamoriofficial
0
170
Yahoo!広告ビジネス基盤におけるバックエンド開発
lycorptech_jp
PRO
1
270
GCASアップデート(202506-202508)
techniczna
0
250
あとはAIに任せて人間は自由に生きる
kentaro
3
1.1k
攻撃と防御で実践するプロダクトセキュリティ演習~導入パート~
recruitengineers
PRO
1
190
Product Management Conference -AI時代に進化するPdM-
kojima111
0
220
「守る」から「進化させる」セキュリティへ ~AWS re:Inforce 2025参加報告~ / AWS re:Inforce 2025 Participation Report
yuj1osm
1
130
実践データベース設計 ①データベース設計概論
recruitengineers
PRO
2
230
広島発!スタートアップ開発の裏側
tsankyo
0
240
Postman MCP 関連機能アップデート / Postman MCP feature updates
yokawasa
0
150
Gaze-LLE: Gaze Target Estimation via Large-Scale Learned Encoders
kzykmyzw
0
320
人を動かすことについて考える
ichimichi
2
320
Featured
See All Featured
A designer walks into a library…
pauljervisheath
207
24k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
183
54k
Side Projects
sachag
455
43k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Fireside Chat
paigeccino
39
3.6k
Thoughts on Productivity
jonyablonski
69
4.8k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Producing Creativity
orderedlist
PRO
347
40k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Statistics for Hackers
jakevdp
799
220k
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/
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ ͓ΘΓ