Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web APIを理解する

Web APIを理解する

php conference Kansai 2017
本編LT枠

73e80d16abc7cc65e08d430c2eae811b?s=128

taminif

July 15, 2017
Tweet

Transcript

  1. Web APIΛཧղ͢Δ php conference Kansai 2017 ຊฤLT࿮ 2017/07/15 େౡ ޫو@sbntaminif

  2. ࣗݾ঺հ • ΢ΣϒϦΦגࣜձࣾWEBΤϯδχΞ • ීஈ͸ژ౎Ͱಇ͍͍ͯ·͢ • ඈͼೖΓࢀՃͱ͍͏͜ͱͰ
 ٸᬎ͜ͷϓϨθϯΛ࡞Γ·ͨ͠ʂ

  3. Web APIͷઆ໌

  4. ௨ৗͷHTTP௨৴ ϒϥ΢β 1)1αʔόʔ ϦΫΤετ )5.-

  5. APIͷHTTP௨৴ ϒϥ΢β 1)1αʔόʔ ϦΫΤετ Կ͔͠Βͷ஋

  6. ΍ͬͯΔ͜ͱ͸ ಉ͡Ͱ͢ʂ

  7. ϒϥ΢β͕ཧղ͢Δඞཁ͕ ͳ͍ͷͰɺʢ࣮࣭ʣͲΜͳ ஋Ͱ΋ฦͤ·͢ɻ

  8. Ͳ͏͍͏࣌ʹ࢖༻͢Δͷ͔

  9. APIͷ༻్ • APIલఏͷγεςϜઃܭ࣌ • ΞϓϦͰ৘ใΛऔಘ͢Δ࣌ • ୈࡾऀʹ৘ใΛఏڙ͢Δ࣌

  10. REST APIͱ͍͏ ߟ͑ํ

  11. REST APIͱ͸ • ιϑτ΢ΣΞΞʔΩςΫνϟͷҰͭ
 Web APIͰଟ͘࠾༻͞Ε͍ͯΔ • URL΍HTTP ϝιουͳͲWebͷ੍໿ʹैΘͤΔ͜ ͱͰڞ௨ཧղΛ࣋ͭ

    • Twitter΍GithubͷAPI͸
 RESTͷਪ঑ʹैͬͯఏڙ͞Ε͍ͯΔ
  12. αϯϓϧʢGitHub APIʣΛ࢖ͬͯઆ໌ https://api.github.com/repos ->GETͰΞΫηε->ϨϙδτϦҰཡΛऔಘ ->POSTͰΞΫηε->ϨϙδτϦΛ௥Ճ “repos”(ϦϙδτϦ)ͱ͍͏ϦιʔεΛ ૢ࡞͢ΔAPIͱͳΔ ΤϯυϙΠϯτ Ϧιʔε

  13. REST APIͷਪ঑࣮૷ ʢϝιουʣ • GET͸औಘ • POST͸௥Ճ • PUT͸มߋ •

    DELETE͸࡟আ
  14. REST APIͷਪ঑࣮૷ ʢϝιουʣ • GET͸औಘ -> R(Read) • POST͸௥Ճ ->

    C(Create) • PUT͸ߋ৽ -> U(Update) • DELETE͸࡟আ -> D(Delete) ->σʔλʢϦιʔεʣʹରͯ͠ૢ࡞
  15. REST APIͷਪ঑࣮૷ʢURLʣ • Ϧιʔε෦෼͸໨తޠͷෳ਺ܗ • usersʢձһʣ • tagsʢλάʣ • Ͱ͖Δ͚ͩ୹͘ɺར༻ऀʹΘ͔Γ΍໊͍͢

    લΛ͚ͭΔ
  16. REST APIͷਪ঑࣮૷ ʢHTTP Responseͦͷ1ʣ • 200൪୅͸ΞΫηεʹ੒ޭͨ͠৔߹ʹฦ͢ • 200͸OK
 201͸Created

  17. REST APIͷਪ঑࣮૷ ʢHTTP Responseͦͷ2ʣ • 400൪୅͸ΫϥΠΞϯτʹ໰୊͕͋Δ৔߹ʹฦ͢ • 401͸ೝূ͕ඞཁͳURL
 404͸ͦ΋ͦ΋ଘࡏ͠ͳ͍URL •

    500൪୅͸αʔόʹ໰୊͕͋Δ৔߹ʹฦ͢
  18. REST APIʹैࣄ͢Δ͜ͱͰ Θ͔Γ΍͍͢APIΛ ઃܭ͠·͠ΐ͏

  19. ࢀߟɿWeb API The Good Parts https://www.amazon.co.jp/exec/obidos/ASIN/4873116864/

  20. ͋Γ͕ͱ͏͍͟͝·ͨ͠