Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
やはり俺のWeb APIは間違えている
Shinichi Kozake
September 13, 2019
Technology
0
250
やはり俺のWeb APIは間違えている
社内勉強会
クラウド・マイクロサービス勉強会#4の発表資料です。
Shinichi Kozake
September 13, 2019
Tweet
Share
More Decks by Shinichi Kozake
See All by Shinichi Kozake
kozake
0
320
kozake
4
1.4k
kozake
0
540
kozake
1
300
kozake
2
5.6k
kozake
2
710
kozake
0
960
kozake
5
7.4k
kozake
0
940
Other Decks in Technology
See All in Technology
ytaka23
0
430
suzukiry
0
210
pinboro
1
1.5k
yasuakiomokawa
0
340
greymd
0
610
nkjzm
1
830
fujiihda
8
1k
tzkoba
0
390
kenya888
1
130
sat
1
990
satoryu
0
2.2k
yuuturn
1
130
Featured
See All Featured
shpigford
368
42k
marktimemedia
6
330
destraynor
146
19k
lara
590
61k
kneath
294
39k
cromwellryan
101
5.9k
tenderlove
52
3.4k
chriscoyier
780
240k
sugarenia
233
830k
morganepeng
17
1.1k
zakiwarfel
88
3.3k
kneath
219
15k
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/
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ ͓ΘΓ