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

GraphQL 入門 ~ REST と比較しながら学ぶ ~

GraphQL 入門 ~ REST と比較しながら学ぶ ~

プログラミングサークル内での 初心者向け GraphQL 勉強会での資料
GitHub: https://github.com/HasegawaYohei/graphql-practice.git

とても浅い部分しか触れていませんが, GraphQL を体験してもらって GraphQL に興味を持ってもらえたらなと思います.
間違っていることなどもあると思うので, 詳しい方はぜひ指摘して教えてください(Mail: yoheybrains[at]gmail.com)

HasegawaYohei

December 03, 2018
Tweet

Other Decks in Programming

Transcript

  1. ϨϙδτϦͷઆ໌ DPOpH IBOEPVU NJHSBUJPOT NPEFMT TFFEFST TSD DMJFOU HSBQIRM SFTU

    WVFDMJFOU HJUJHOPSF QBDLKTPO XFCQBDLDPOpHKT 4FRVFMJ[F ओʹ͜͜Λݟͳ͕Β΍Γ·͢ ͨ·ʹNPEFMT΋  εϥΠυʹग़ͯ͘Δ͍͔ͭ͘ͷը૾ͷݩϑΝΠϧ͕ೖͬͯ·͢
  2. ಺༰  φΠʔϒͳ3&45"1*ͷέʔεΛମݧ͢Δ 3&45   ͷ໰୊఺ʹ3&45ͱͯ͠ରॲ͢Δ 3&45  

    ͷ໰୊఺ʹ(SBQI2-ͱͯ͠ରॲ͢Δ (SBQI2- ࠓճ͸3&45"1*αʔόͱ(SBQI2-"1*Λൺֱͯ͠ (SBQI2-Λମݧͯ͠΋Β͓͏ͱࢥ͍·͢ εϥΠυλΠτϧʹ͕͍͍ͭͯΔ࣌͸ࣗ෼ͰखΛಈ͔ͯ͠ίʔυΛॻ͘಺༰Ͱ͢
  3. ಺༰ʹؔ͢Δ஫ҙ ඇৗʹೖ໳తͰ͔ͭ(SBQI2-ͷΑ͞Λগ͠Ͱ΋ମݧ͢Δ͜ͱ͕໨తͰ͢ ͦͷͨΊ࣌ؒͷ౎߹্ҎԼͷ΋ͷ͸ѻ͍·ͤΜ w .VUBUJPO w ಛఆͷΫϥΠΞϯτϥΠϒϥϦͳͲ w ΑΓ౿ΈࠐΜ࣮ͩ૷ͷ࿩ͳͲ w

    ͦͷଞଟ਺ ࠓճͰ(SBQI2-ʹڵຯΛ࣋ͬͯ΋Β͍ͥͻࣗ෼Ͱษڧͯ͠΋Β͑ͨΒͱࢥ͍·͢ ͔͠͠"QQFOEJYΛ༻ҙ͍ͯ͠ΔͷͰ࣌ؒͷڐ͢ݶΓ঺հ͠Α͏ͱࢥ͍·͢
  4. ໰୊΁ͷରॲ 3&45 ΤϯυϙΠϯτΛ௥Ճͨ͜͠ͱʹΑΔ৽ͨͳ࡞ۀ w .PEFMʹIPPLΛ௥Ճ w ଞͷΤϯυϙΠϯτʹ΋Өڹ͕ͰΔ w ͜Ε͕ڐ༰Ͱ͖ͳ͚Ε͹.PEFMʹϝιουΛ௥Ճͯͦ͠ΕΛݺͼग़͢Α͏ʹ͢Δ w

    $MJFOUαΠυͷΤϯδχΞͱͷίϛϡχέʔγϣϯ w υΩϡϝϯτΛՃචमਖ਼͢Δ ͜͏͍͏͜ͱ͕૿͑Δͱπϥͦ͏ w ίʔυ͕൥ࡶʹͳΔ w $MJFOUαΠυͷΤϯδχΞͱͷίϛϡχέʔγϣϯΤϥʔ w υΩϡϝϯτͷमਖ਼๨Ε΍ޡࣈ୤ࣈͳͲ
  5. 3&45ͷ໰୊఺·ͱΊ w ΫϥΠΞϯτଆʹͱͬͯෆඞཁͳσʔλ΋ૹ৴͞ΕΔ w ͭͷը໘Λߏ੒͢ΔͷʹେྔͷϦΫΤετ͕ඞཁͳ৔߹͕͋Δ w ͦͷରࡦͱͯ͠৽ͨͳΤϯυϙΠϯτΛ࣮૷͢Δ͜ͱʹͳΔ w ͢Δͱ߲࣍ͷΑ͏ͳ໰୊͕ग़ͯ͘Δ w

    ΤϯυϙΠϯτ͕૿͑Δ ౰વ  w $MJFOUαΠυͷΤϯδχΞͱͷίϛϡχέʔγϣϯΛͱͬͯΤϯυϙΠϯτͷ࢓༷ ΛܾΊͳ͚Ε͹ͳΒͳ͍ w υΩϡϝϯτͷՃචमਖ਼͕ඞཁʹͳΔ ˞.&$&Ͱ͸ͳ͍Ͱ͢
  6. (SBQI2-4DIFNB (SBQI2-Ͱ͸࢖༻͢ΔσʔλΛ4DIFNB 5ZQF ͱͯ͠ఆٛ͠·͢ ⇛࢖༻͢Δσʔλશͯͷ4DIFNB 5ZQF Λఆٛ͢Δඞཁ͕͋Γ·͢ ɹ⇛ϑΟʔϧυʹؚ·Ε͍ͯͳ͍σʔλ͸ѻ͏͜ͱ͕Ͱ͖·ͤΜ %#4DIFNBʹ͸ͭΧϥϜ͕ఆٛ͞Ε͍ͯΔ (SBQI2-4DIFNB

    5ZQF ʹ͸ͭͷϑΟʔϧυ͕ఆٛ͞Ε͍ͯΔ w ͜ͷ৔߹͸(SBQI2-4DIFNBʹఆٛ͞Ε͍ͯͳ͍bDSFBUFE@BU`bVQEBUFE@BU`͸(SBQI2-Λ௨ͯ͠ ΞΫηε͢Δ͜ͱ͸Ͱ͖·ͤΜ w ·ͨ(SBQI2-4DIFNB͸%#4DIFNBʹґଘ͠ͳ͍ͷͰ%#4DIFNBʹؚ·Ε͍ͯͳ͍bUBHT`ͱ ͍͏ϑΟʔϧυΛఆٛ͢Δ͜ͱ͕Ͱ͖·͢
  7. w ΫϥΠΞϯτଆʹͱͬͯෆඞཁͳσʔλ΋ૹ৴͞ΕΔ w ͭͷը໘Λߏ੒͢ΔͷʹେྔͷϦΫΤετ͕ඞཁͳ৔߹͕͋Δ w ͦͷରࡦͱͯ͠৽ͨͳΤϯυϙΠϯτΛ࣮૷͢Δ͜ͱʹͳΔ w ͢Δͱ߲࣍ͷΑ͏ͳ໰୊͕ग़ͯ͘Δ w ΤϯυϙΠϯτ͕૿͑Δ

    ౰વ  w $MJFOUαΠυͷΤϯδχΞͱͷίϛϡχέʔγϣϯΛͱͬͯΤϯυϙΠϯτͷ࢓༷ ΛܾΊͳ͚Ε͹ͳΒͳ͍ w υΩϡϝϯτΛՃචमਖ਼͕ඞཁʹͳΔ 3&45ͷ໰୊఺·ͱΊ ͓͞Β͍ ˞.&$&Ͱ͸ͳ͍Ͱ͢ ඞཁͳσʔλ͚ͩΛऔಘͰ͖Δ ΞΫηε͢ΔΤϯυϙΠϯτ΋࣮૷͢ΔΤϯυϙΠϯτ΋͚ͭͩ ࠷ॳʹ4DIFNBʹܾؔͯ͠·͍ͬͯΕ͹໰୊ͳ͍ ࣍͸͜Εʹ͍ͭͯ
  8. w ΫϥΠΞϯτଆʹͱͬͯෆඞཁͳσʔλ΋ૹ৴͞ΕΔ w ͭͷը໘Λߏ੒͢ΔͷʹେྔͷϦΫΤετ͕ඞཁͳ৔߹͕͋Δ w ͦͷରࡦͱͯ͠৽ͨͳΤϯυϙΠϯτΛ࣮૷͢Δ͜ͱʹͳΔ w ͢Δͱ߲࣍ͷΑ͏ͳ໰୊͕ग़ͯ͘Δ w ΤϯυϙΠϯτ͕૿͑Δ

    ౰વ  w $MJFOUαΠυͷΤϯδχΞͱͷίϛϡχέʔγϣϯΛͱͬͯΤϯυϙΠϯτͷ࢓༷ ΛܾΊͳ͚Ε͹ͳΒͳ͍ w υΩϡϝϯτΛՃචमਖ਼͕ඞཁʹͳΔ 3&45ͷ໰୊఺·ͱΊ ˞.&$&Ͱ͸ͳ͍Ͱ͢ ඞཁͳσʔλ͚ͩΛऔಘͰ͖Δ ΞΫηε͢ΔΤϯυϙΠϯτ΋࣮૷͢ΔΤϯυϙΠϯτ΋͚ͭͩ ࠷ॳʹ4DIFNBʹܾؔͯ͠·͍ͬͯΕ͹໰୊ͳ͍ 4DIFNBఆ͔ٛΒࣗಈੜ੒͕ՄೳͳͷͰमਖ਼๨Ε΍ޡه͕ͳ͍
  9. ΈΜͳ͕ײͯ͡Δ(SBQI2-ͷͪΐͬͱࠔͬͨ͜ͱ w ΤϯυϙΠϯτ͕ͻͱͭͳͷͰΤϯυϙΠϯτຖͷϨεϙϯελΠϜͳͲΛଌΕͳ͍ w Ωϟογϡ͕೉͍͠  w ͜Εʹ͍ͭͯ͸͢Ͱʹ৭ʑͳΩϟογϡํ๏͕ఏڙ͞Ε͍ͯΔ໛༷ w ͦ΋ͦ΋3&45Ͱ΋Ωϟογϡ೉͘͠Ͷ

    Έ͍ͨͳέʔεΛࢦఠ͍ͯ͠Δ  w φϨοδ͕ཷ·͍ͬͯͳ͍ͷͰʮ͜ΕͲ͏͠Α͏ ʯΈ͍ͨͳ࣌ʹଈ࠲ʹղܾͰ͖ͳ͍ w ಛʹ೔ຊޠ w Ͱ΋͜Ε͸νϟϯεͱ΋ݴ͑Δ ΧϯϑΝϨϯε-5ձ8FC্ͷهࣄͳͲΛࢀߟʹͨ͠Ұཡ
  10. "QQFOEJYࠓճͷ࣮૷ʹ͸ॏେͳܽ఺͕͋Γ·͢ ཁૉ਺͕͍ͭ͘ʹͳΔ͔෼͔Βͳ͍Ϧετͷ৔߹ʹ͸جຊతʹ$POOFDUJPOΛ࢖͏ ⇛ࢀߟIUUQTCMPHBQPMMPHSBQIRMDPNFYQMBJOJOHHSBQIRMDPOOFDUJPOTDCDE ⇛TSDHSBQIRMTDIFNBDIFBUTIFFUKTΛݟ͍ͯͩ͘͞ $POOFDUJPO &EHF /PEF &EHF /PEF &EHF

    /PEF 1BHF *OGP ࠷ॳ͸ཧղ͕೉͍͔͠΋ Ͱ΋݁ہ͸ΧʔιϧϕʔεͷϖʔδωʔγϣϯͰ͢ ΫΤϦ͸TSDWVFDMJFOUTFSWJDFT"QJDIFBU TIFFUKTΛࢀߟʹ ͜ͷίʔυ͸$POOFDUJPOΛਖ਼֬ʹ࣮૷ͨ͠΋ͷͰ͸ͳ͍Ͱ͢ ͢Έ·ͤΜ