Web API Design

93bc8fb48f57c11e417dad9d26a2fb8a?s=47 petitviolet
January 11, 2018
4.1k

Web API Design

REST, Activity-oriented, JSON-RPC, gRPC, GraphQL

93bc8fb48f57c11e417dad9d26a2fb8a?s=128

petitviolet

January 11, 2018
Tweet

Transcript

  1. 8FC"1*ઃܭͷ ͜Ε·Ͱͱ͜Ε͔Β  !QFUJUWJPMFU 

  2. ͜Ε·Ͱͷ 8FC"1* 2

  3. ͍Ζ͍Ζ͋Δ 3&45 40"1 9.-31$ 3

  4. "1*ઃܭͰ೰Μͩਓ͸ ଟ͍͸ͣ 4

  5. ࣍ͷ8FC"1*࡞ΔͳΒ Ͳ͏΍ͬͯ࡞Ζ͏ʜ 5

  6. ·ͣ͸ ͲΜͳઃܭ࢓༷ࢦ਑ࢥ૝͕ ͋Δͷ͔Λ஌Δ 6

  7. ࿩͢͜ͱ w 3&45 Ϧιʔεࢦ޲  w ૢ࡞ࢦ޲ w +40/31$ w

    H31$ w (SBQI2- w ॴײͱ·ͱΊ 7
  8. ͦΕͧΕͷઃܭ࢓༷ࢦ਑ࢥ૝ʹ͍ͭͯ w ֓ཁ w งғؾ w Կ͕ΠέͯΔͷ͔ w Կ͕Πέͯͳ͍ͷ͔ w

    ࢖͍Ͳ͜Ζ Λ·ͱΊͯ঺հ͍͖ͯ͠·͢ɻ จࣈଟΊͰ͢" ࿩͢͜ͱ 8
  9. 3&45 3&QSFTFOUBUJPOBM4UBUF5SBOTGFS 9

  10. 3&45 w ΈΜͳେ޷͖3&45 w ʮ͜Ε·Ͱʯͷ8FC"1*୅ද w ΞϓϦέʔγϣϯ͕อ༗͢ΔϦιʔεΛ63*Ͱද ݱ͠ɺΫϥΠΞϯτ͸ͦΕʹ໰͍߹ΘͤΔ w ૢ࡞͸.FUIPE

    (&51045165%&-&5&ʜ  w ʮ8FCΒ͍͠ʯઃܭͰɺ63*΍ϔομɺεςʔλ είʔυͳͲͷ)551ͷػೳΛ༻͍ͯϦΫΤετ ϨεϙϯεΛߏங͢Δ 10
  11. 3&45ͷงғؾ w (&5VTFST w *%ͷVTFSΛऔಘ͢Δ w 165VTFSTUPEPT w *%ͷVTFSͷ*%ͷUPEPΛߋ৽͢Δ w

    %&-&5&VTFST w *%ͷVTFSΛ࡟আ͢Δ w "DDFQUBQQMJDBUJPOWOEHJUIVCW KTPO w (JUIVCͷ"1*όʔδϣϯࢦఆ 11
  12. 3&45͸Կ͕ΠέͯΔͷ͔ w 63*ʹΑͬͯऔಘߋ৽͢ΔϦιʔεΛಛఆͰ͖ͯɺ )551ϝιουͷ(&51045165%&-&5&͕8FC ΞϓϦʹ͋Γ͕ͪͳ$36%ૢ࡞ͱ૬ੑ͕ྑ͍ w 8FCք۾Ͱ͸σϑΝΫτײ͕ඬ͍ͬͯΔͷͰલఏ ͕ڞ༗Ͱ͖͓ͯΓ։ൃऀಉ࢜Ͱͷձ࿩ָ͕ʹͳΔ w ಛʹ֎෦αʔϏεͷ"1*͸3&45ʹͳ͍ͬͯΔͱ௚

    ײతͰ͋Γɺ࢖͏͚ͩͳΒ໎͍͸গͳ͍ w 3&45Λαϙʔτ͍ͯ͠Δ8"'Λ࢖͑͹։ൃ΋ָ 12
  13. 3&45͸Կ͕Πέͯͳ͍ͷ͔ w 3&45͸͋͘·Ͱઃܭࢥ૝ࢦ਑Ͱ͋Γ࢓༷Ͱ͸ͳ͍ w ਓʹΑͬͯղऍ͕ҟͳͬͯ63*Λܾఆ͢Δͷ͕೉͍͠৔໘΋ଟʑ w ϓϩμΫτ։ൃͩͱɺ"1*ίʔϧճͰछྨͷϦιʔεʹ͔͠ ΞΫηεग़དྷͳ͍ͱޮ཰͕ѱ͍γʔϯ͕ଟ͍ w ΞϓϦέʔγϣϯͷ%PNBJO͡Όͳ͍"1*ઐ༻ϞσϧΛ࡞ͬͯϦιʔ

    εͱͯ͠ѻ͏Α͏ʹ͠ͳ͍ͱ͍͚ͳ͍ w ϓϩϑΟʔϧϖʔδʹදࣔ͢Δ৘ใΛҰׅͰANZQBHFAͱ͔ w ͋Δ͍͸ෳ਺ϦΫΤετʹ·͕ͨΔτϥϯβΫγϣϯ؅ཧ͢Δͱ͔ w ࡢࠓͩͱ#BDLFOEGPS'SPOUFOE #'' Λཱͯͯճආ͢ΔΞʔΩ ςΫνϟ΋͋Δ͕ɺͦ͜·Ͱ΍Δඞཁͷ͋Δ3&45ͬͯخ͍͠Μ ͚ͩͬʁঢ়ଶʹ w #''͸.JDSPTFSWJDFTతͳจ຺ͳͷͰͪΐͬͱζϨͨҙݟ 13
  14. 3&45ͷ࢖͍Ͳ͜Ζ ໎ͬͨΒ3&45GVM"1*Λ࡞ΔͰྑ͍͕ɺಛʹ࢖͍͍ͨͷ ͸ҎԼͷΑ͏ͳγʔϯ w "1*Λ֎෦ʹఏڙ͢Δ w ಛఆͷΫϥΠΞϯτΛ૝ఆͤͣɺෆಛఆଟ਺ʹ࢖ΘΕΔ ൓ରʹɺ w ಺෦޲͚ͷ"1*Ͱ͋Δ

    w ಛఆͷΫϥΠΞϯτͷͨΊͷ"1*Ͱ͋Δ ͱ͍ͬͨ৔߹ʹ͸3&45͸ঃʑʹ͠ΜͲ͘ͳͬͯ͘Δ͜ ͱ͕ଟ͍ɻ 14
  15. ૢ࡞ࢦ޲ 15

  16. ૢ࡞ࢦ޲ w Ϧιʔεࢦ޲ͳ"1*Ͱ͸ͳ͘ɺΫϥΠΞϯτ͔Β ͷʮૢ࡞ʯΛදݱ͢Δ"1* w 40"1ͬΆ͞͸͋Δ w 9.-͡Όͳ͍͠࢓༷΋ແ͍ͷͰ3&45ͱ40"1ͷதؒ w ΫϥΠΞϯτ͔Βͷૢ࡞ΛҰͭͷ"1*ͱͯ͠ఏڙ

    w ʮΞΫςΟϏςΟʔࢦ޲ʯͱ΋ 16
  17. ૢ࡞ࢦ޲ͷงғؾ w (&5HFU@VTFS JE w 1045EFMFUF@UPEP w CPEZͰ\VTFS@JE JE^ )551ϝιουͰ͸ͳ͘ύεʹಈࢺΛؚ·ͤͯૢ࡞

    Λදݱ͢Δ Ϧιʔεͷಛఆʹ͸ύϥϝʔλ΍ϘσΟΛ༻͍Δ 17
  18. ૢ࡞ࢦ޲͸Կ͕ΠέͯΔͷ͔ w 3&45͔Βͷ୤٫ w 3&45ͩͱϦιʔεʹର͢Δ)551ϝιουͰૢ࡞Λද ݱ͕ͨ͠ɺෳ਺ͷϦιʔεʹ·͕ͨΔૢ࡞Λදݱ͢Δ ͷ͕೉͔ͬͨ͠ w ૢ࡞ࢦ޲ͳΒͦ͜͸ؾʹͤͣ ɺΫϥΠΞϯτͷཁٻʹ

    ରͯ͠ॊೈʹઃܭ͢Δ͜ͱ͕ग़དྷΔ 18
  19. ૢ࡞ࢦ޲͸Կ͕Πέͯͳ͍ͷ͔ w ౷Ұ͞Εͨ࢓༷ɾࢥ૝ɾࢦ਑͕ͳ͍ w νʔϜͰ࿩͠߹ͬͯਐΊΔඞཁ͕͋Δ w 8FCͱͯ͠ελϯμʔυͳੈքͰ͸ͳ͍ w 3&45͔Β୤٫ͨ݁͠Ռ w

    8FCͷػೳ )551ϝιου΍εςʔλείʔυ ΛͲ ͜·Ͱ׆༻͢Δ͔΋೰ΉϙΠϯτ w 3&45͔Β཭ΕΒΕ͍ͯͳ͍ײ΋͋Γɺ΍΍த్൒ ୺͔΋͠Εͳ͍ 19
  20. ૢ࡞ࢦ޲ͷ࢖͍Ͳ͜Ζ w 3&45Ͱ͋Δඞཁ͕ബ͍έʔε w ؅ཧը໘ͷΑ͏ͳɺಛఆͷΫϥΠΞϯτΛ૝ఆͯ͠ "1*Λ։ൃ͢Δͱ͖ w 3&45ͩͱ͠ΜͲ͍ঢ়گΛճආͰ͖Δ w ཁ͢Δʹ಺෦తͳ"1*Λ։ൃ͢Δͱ͖ʹ͸ૢ࡞ࢦ

    ޲"1*Λݕ౼͢Δͱྑͦ͞͏ w ࠷ॳʹํ਑ΛܾΊ͓͚ͯ͹͋ͱ͸໎͍͕গͳ͍ 20
  21. +40/31$ 21

  22. +40/31$ w 3FNPUF1SPDFEVSF$BMM 31$ ͷϓϩτίϧͷΠϯ λϑΣʔεͱͯ͠+40/Λ༻͍ͨ΋ͷ w ඇৗʹγϯϓϧͰɺ+40/ͷதʹ31$ͱͯ͠ඞཁͳ ݺͼग़͍ͨ͠ϝιουͱͦͷҾ਺Λදݱͯ͠ɺ αʔόΫϥΠΞϯτؒͰίϛϡχέʔγϣϯ͢Δ

    22
  23. +40/31$ͷงғؾ ϦΫΤετྫ w 1045KTPOSQD w \KTPOSQD NFUIPEHFU6TFS QBSBNT<> JEIPHF^ ͦΕʹର͢ΔϨεϙϯε͕ҎԼ

    w \KTPOSQD SFTVMU\VTFS\JE OBNF"MJDF^ JEIPHF^ AJEA͸ϦΫΤετʹରԠ͢ΔϨεϙϯεΛࣝผ͢ΔͨΊͷ จࣈྻ·ͨ͸਺஋ͰɺαʔόΫϥΠΞϯτؒͰѲΕ͍ͯΕ ͹ͳΜͰ΋ྑ͍ɻ 23
  24. +40/31$͸Կ͕ΠέͯΔͷ͔ w +40/31$ͱ͍͏࢓༷͕͋Δ w ࢓༷ʹԊͬͯઃܭɾ࣮૷͢Ε͹Α͍ w ࢓༷΋γϯϓϧͳͷͰֶशίετ͸௿͍ w ཱͪҐஔͱͯ͠͸ૢ࡞ࢦ޲"1*ͱ͓͓Αͦಉ͔͡ w

    31$ͳͷͰΑΓ3&45͔Β཭ΕΔ w ର৅ͷϦιʔε΍ߦ͍͍ͨૢ࡞͸ANFUIPEAͱͯ͠ දݱ͢ΔͨΊɺ63-͸͚ͭͩͱͳΓ೰ΈϙΠϯ τ͕ͳ͘ͳΔ 24
  25. +40/31$͸Կ͕Πέͯͳ͍ͷ͔ w +40/31$ࣗମ͸γϯϓϧͳ࢓༷ͳͷͰͦͷ൓໘ɺ ࣮૷͸શͯࣗ෼ͨͪͰ΍Δඞཁ͕͋Γɺ+40/31$ ʹ৐͔ͬΔ͜ͱͰ࣮૷໘Ͱָʹ͸ͳΒͳ͍ w ύε͕ଘࡏ͠ͳ͍ͷͰɺ)551తʹτϨʔε͢Δͷ ͕΍΍೉͍͠ w ྫ͑͹($1ͷTUBDLESJWFSUSBDFͰ͸දࣔ͢Δ͜ͱ͕ग़དྷ

    ͳ͍౳ɺӡ༻໘Ͱ΍΍σϝϦοτ͕͋Δ͔ w ࢓༷ͷதʹ͸Τϥʔίʔυͷଘࡏ͕͋Γɺ 9.-31$࣌୅ͷ΋ͷΛ౿ऻ͍ͯ͠ΔΒ͘͠౜ಥͰ ΍΍ҧ࿨ײ͋Δ 25
  26. +40/31$ͷ࢖͍Ͳ͜Ζ 31$ͳͷͰجຊతʹ͸಺෦޲͚"1*ɻ ͱ͸͍͑ͨͩͷ+40/PWFS)551ͳͷͰɺ֎෦޲͚ ಺෦޲͚"1*ͷͲͪΒͰ΋ରԠͰ͖Δ͸ͣɻ ͕ͩɺ+40/31$ͳ֎෦޲͚"1*ͳΜͯݟͨ͜ͱ͕ ͳ͍ʜɻ Τϥʔίʔυ͕͋ΔͷͰྫ֎ͷදݱ΋౷Ұ͠΍͢ ͘ɺ࠷ॳʹܾΊͯ͠·͑͹͋ͱ͸εϜʔζʹߦ͚ͦ ͏ɻ 26

  27. H31$ 27

  28. H31$ w (PPHMF੡ͷ31$ϓϩτίϧ w )551Λαϙʔτ͍ͯ͠Δ w γϦΞϥΠζʹ1SPUPDPM#VGGFSTΛ࢖༻ w *%-Ͱ"1*ͷ࢓༷Λఆ͔ٛͯͦ͜͠ΒαʔόΫϥΠ ΞϯτͷίʔυΛੜ੒͠ɺͦΕΛ༻͍ΔͨΊΠϯ

    λϑΣʔεͷᴥᴪ͕ແ͘ͳΔ 28
  29. H31$ͷงғؾ ΫϥΠΞϯτ 29

  30. H31$ͷงғؾ αʔό 30

  31. H31$͸Կ͕ΠέͯΔͷ͔ w H31$ͱ͍͏࢓༷͕͋ΓɺͦΕʹͷ͔ͬΔ͜ͱͰ "1*࢓༷͕ݻ·Δ w ίʔυ΋ੜ੒ग़དྷΔͷͰᴥᴪ͕ແ͘ͳΔ w 31$ͳͷͰ3&45͔Βͷ୤٫ w QSPUPCVGͰΠϯλϑΣʔεʹܕ෇͚͕ग़དྷΔͨΊ

    ҆શͰɺ͔ͭTFSJBMJ[FEFTFSJBMJ[FͷύϑΥʔϚϯ ε΋ྑ͍ 31
  32. H31$͸Կ͕Πέͯͳ͍ͷ͔ w ࢖͑ͳ͍؀ڥ͕͋Δ w ϒϥ΢βɺ("& w HSQDXFCͱ͍͏΋ͷ΋࡞ΒΕ͍ͯΔ w QSPUPCVGͳͨΊɺ+40/ʹ׳Εͨਓؒʹ༏͘͠ͳ͍ w

    αϯϓϧͰϦΫΤετૹΔͷ΋໘౗ͰDVSMͱ͔࢖͑ͳ͍ w +40/ͱH31$ΛϚοϐϯά͢ΔͨΊͷHSQDHBUFXBZͱ ͍͏ͷ΋։ൃ͞Ε͍ͯΔ͕ɺ༨ܭʹखؒ͸͔͔Δ w ࣮ಋೖ͢ΔͳΒ৭ʑߟ͑ͳ͍ͱ͍͚ͳ͍ w ϩάग़ྗͱ͔σόοάͱ͔ೝূΈ͍ͨͳڞ௨ॲཧͳͲ w ඞཁͳ΋ͷ͕·ͩଗ͍͖ͬͯ͸ͳ͍͔΋ 32
  33. H31$ͷ࢖͍Ͳ͜Ζ w جຊతʹ͸ಛఆͷΫϥΠΞϯτΛ૝ఆͨ͠"1* w αʔόؒ௨৴Ͱ͋Ε͹༗ྗީิ w QSPUPϑΝΠϧΛެ։͓͚ͯ͠͹ͦΕͰ֎෦޲͚ ʹ΋ग़དྷΔ͔΋஌Εͳ͍͕ w "1*࢓༷͔ΒαʔόΫϥΠΞϯτͷϘΠϥʔϓϨʔ

    τίʔυΛੜ੒ग़དྷΔͷ͸ඇৗʹڧྗͳͷͰɺ͓ ͓ΑͦͲΜͳγʔϯͰ΋׆༂͢Δ͸ͣ w ·ͩ·ͩϋϚΓͲ͜Ζଟͦ͏ͳͷͰݕূඞਢ 33
  34. (SBQI2- 34

  35. (SBQI2- 'BDFCPPL͕ఏএ͍ͯ͠ΔΫΤϦݴޠ BRVFSZMBOHVBHFDSFBUFECZ'BDFCPPLJOGPS EFTDSJCJOHUIFDBQBCJMJUJFTBOESFRVJSFNFOUTPGEBUB NPEFMTGPSDMJFOUʖTFSWFSBQQMJDBUJPOT ߏ଄Խ͞ΕͨΫΤϦݴޠͰ͋Γɺཁٻͨ͠΋ͷΛॊೈʹ ฦͨ͢Ίͷ࢓૊ΈͰɺࢀরܥͷ2VFSZͱߋ৽ܥͷ .VUBUJPOͱ͍͏ͭʹେผ͞ΕΔɻ +40/ͷΑ͏ͳΫΤϦΛ)551Ͱ1045࣮ͯ͠ߦ͠ɺϨε ϙϯε͸+40/Ͱड͚औΔɻ

    35
  36. (SBQI2-ͷงғؾ 3FRVFTU 3FTQPOTF 36

  37. (SBQI2-ͷงғؾ 3FRVFTU 3FTQPOTF 37

  38. (SBQI2-ͷԿ͕ΠέͯΔͷ͔ w ΫϥΠΞϯτओಋͰඞཁ࠷௿ݶͷϦΫΤετͰ͢·ͤΔ͜ͱ͕Մ ೳ w ैདྷͷઃܭͰ͸ແବͳσʔλΛฦ٫ͯ͠͠·Θͳ͍Α͏ʹ"1*Λ޻෉͢ Δඞཁ͕͕͋ͬͨɺ(SBQI2-Ͱ͸ͦͷ޻෉͸ෆཁʹͳΔ w αʔόαΠυ͸ϦιʔεΛҰ௨Γฦ٫Ͱ͖ΔΑ͏ʹ࣮૷͓͚ͯ͠͹ɺ͋ ͱ͸ΫϥΠΞϯτଆͰ޷͖উखग़དྷΔ

    w $234తʹ͓͚Δ2VFSZΛ·͞ʹΫΤϦݴޠͰ͋Δ(SBQI2-ͰΫ ϥΠΞϯτଆʹ੹຿ΛدͤΔ͜ͱ͕Ͱ͖Δͷ΋ඇৗʹڧྗɻ w ϑϨʔϜϫʔΫʹ΋ΑΔ͕ɺ/ ໰୊͕ى͖ͳ͍Α͏ʹ͢ΔͨΊͷ ػߏ͕૊Έࠐ·Ε͍ͯͨΓͯ͠ɺεΫϥονͰ࣮૷͢ΔΑΓ΋҆શ w ෇ଐͷ (SBQIJ2Mͱ͍͏΋ͷ͕ඇৗʹศརͰɺิ׬ͱ͔΋͔ͬ͠ Γ΍ͬͯ͘ΕΔͷͰςετ΋؆୯ʹߦ͑Δ 38
  39. (SBQI2-ͷԿ͕Πέͯͳ͍ͷ͔ (SBQI2-ͷදݱྗػೳ͕๛෋ͳͨΊɺֶशίετ ͸ߴ͍ɻ ·ͩੈʹग़͔ͯΒ೔͕ઙ͍ͷͰɺ஌ݟ͕޿·͍ͬͯ ͳ͍ͨΊϋϚͬͨ࣌ʹ͕͔͔࣌ؒΔՄೳੑ͕ߴ͍ͷ ͸σϝϦοτɻʮ3&45ͳΒָͳͷʹʜʯͱͳΓͦ͏ɻ ͞Βʹपลπʔϧ΍ΤίγεςϜ΋·ͩଗ͓ͬͯΒ ͣɺϞχλϦϯάͱ͔ͦͷล͸ཁௐࠪɻ 39

  40. (SBQI2-ͷԿ͕Πέͯͳ͍ͷ͔ ΫΤϦݴޠͰ͋ΓɺΫϥΠΞϯτ͔Β௚઀%#Λୟ͍͍ͯΔΑ͏ͳΠϝʔ δʹͳΔͨΊɺυϝΠϯ͕ྲྀग़͍ͯ͠Δͱ΋͍͑Δɻ ैͬͯɺ%%%ͱ૊Έ߹ΘͤΔͳΒ૬ੑ͸ྑ͘ͳ͍ɻ 3&"%ܥͷΈΛ2VFSZͰΞΫηεग़དྷΔΑ͏ʹ͢Δͷ͸ΞϦ͕ͩɺ .VUBUJPOΛ(SBQI2-ͱͯ͠ఏڙ͢Δͷ͸ݫͦ͠͏ɻ ϨΠϠʔͱͯ͠(SBQI2-͸Ξμϓλ૚ʹ͋ͨΔ͕ɺ৵৯ͯ͠͠·͏ɻ ྫ͑͹4DBMBͷTBOHSJBͷ৔߹͸(SBQI2-ϑϨʔϜϫʔΫͱͯ͠%"0తͳ ଘࡏΛ౉͞ΕΔ͜ͱΛظ଴͓ͯ͠Γɺ2VFSZ.VUBUJPOͱ΋ʹͦΕΛ࢖ͬ ͨૢ࡞Ͱ͋Δͱ͍͏લఏʹ͍ͨͬͯΔɻ

    ͜͜ʹؔͯ͠͸ϑϨʔϜϫʔΫͷಛੑ͔΋஌Εͳ͍͕ɺߋ৽ܥͷ"1*ΛΫ ΤϦݴޠͱͯ͠ΫϥΠΞϯτͷ੹຿ͱ͢Δͷ͸ͪΐͬͱ΍Γ͔͗͢΋ɻ 40
  41. (SBQI2-ͷ࢖͍Ͳ͜Ζ w ΘΓͱ൚༻త w ࠷ۙ͸֎෦޲͚ͷ"1*ͱͯ͠ఏڙ͍ͯ͠Δͱ͜Ζ΋ ͪΒ΄Βɻ(JUIVCͱ͔,JCFMBͱ͔ɻ 41

  42. Ͱɺ݁ہͲ͏͢Ε͹ʁ 42

  43. ࠷దղ͸ͳ͍ έʔεόΠέʔε 43

  44. 8FC"1*ͷઃܭࢥ૝ࢦ਑ͷ·ͱΊ w 3&45 w Ұൠతʹ஌ΒΕ͍ͯΔͷͰબఆ͠΍͍͢ w Ұൠతʹ஌ΒΕ͍ͯΔ͚Ͳ೉͍͠ w ૢ࡞ࢦ޲ w

    ֶशίετͰ3&45ͷ͠ΜͲ͔͞Β୤٫Ͱ͖Δ w ؆୯ʹ3&45Λ΍ΊΔઌͱͯ͠͸ୈҰީิ w ಛʹ֎෦޲͚ͱͯ͠͸͔ͬ͜ΘΔ͍ͷ͕ͪΐͬͱ೉఺ w +40/31$ w ֶशίετ͸Θ͔ͣͰ࢓༷ͷ͋Δ31$ܗࣜͳͷͰ͔ͬ͜Α͞͸Ϛγ w ྫ͑͹Τϥʔίʔυͱ͔࢓༷ʹ৐Δ͔Ͳ͏͢Δ͔͸೰ΈͲ͜Ζ w 1"5)ͷ֓೦͕ͳ͘ͳΔͷͰϞχλϦϯάͰࠔΔՄೳੑΞϦ w H31$ w *%-Ͱͷ"1*࢓༷ఆ͔ٛΒͷίʔυੜ੒͕ϝϦοτ w QSPUPCVGͳͷͰύϑΥʔϚϯε͸+40/ΑΓྑ͍ w ࢖͑ͳ͍؀ڥ͕͋ͬͨΓӡ༻໘Ͱ४උ͕ඞཁ w (SBQI2- w ΫϥΠΞϯτଆʹ2VFSZͷ੹຿ΛدͤΒΕΔͷ͕ڧྗ w ֶशίετͷߴ͕͞ݒ೦ 44
  45. બͼํ w ໎ͬͨΒ3&45 w ೰Ήͷ΋෼͔͍ͬͯΔ͕ɺͦΕҎ֎͸៉ྷָͩ͠ w 3&45Ͱ೰Έͨ͘ͳ͍͚Ͳɺۤ࿑ͨ͘͠ͳ͍ w ૢ࡞ࢦ޲PS+40/31$ w

    ϒϥ΢β޲͚ͷΞϓϦ͡Όͳ͍ͳΒH31$ w εϚϗΞϓϦ΋Χόʔग़དྷΔ w "1*࢓༷ॻ͕΄΅ෆཁʹͳΔ w 3FBEܥ͕ෳࡶʹͳΔՄೳੑ͕͋ΔͳΒ(SBQI2- w ΫϥΠΞϯτओಋͰ։ൃͰ͖Δ 45
  46. ݸਓతͳҙݟ ֎෦޲͚ͳΒ3&45ɻ ಺෦޲͚ͳΒɺ3FBEܥͱ8SJUFܥΛΘ͚Δ$234͸ڧྗ ͳͷͰɺͦΕͱ૊Έ߹Θ͍ͤͨɻ $MFBO"SDIJUFDUVSFʹ͓͚ΔΞμϓλ૚Ͱด͍ͨ͡ɻ ͱ͍͏ͱ͜Ζ͔ΒɺҎԼɻ w 8FC ϒϥ΢β ΞϓϦͳΒ

    w 3FBEܥ(SBQI2- w 8SJUFܥૢ࡞ࢦ޲PS+40/31$ w ඇ8FCΞϓϦͳΒH31$ 46
  47. 5IBOLZPV 47