すえなみチャンス暑気払い
BAD_REQUEST = 400 ΛΊ͙Δ͍ɻϚδοΫφϯόʔՄಡੑΛ Լ͛Δͷ͔?@qsona (FiNC Technologies)
View Slide
ࠓ͢͜ͱ• BAD_REQUEST = 400 ͷྫ͔Β ϚδοΫφϯόʔͷੋඇͳͲʹΒ·ͤͯٞ͢Δ• ͦͷաఔͰɺʮઃܭͷݴޠԽʯͷॏཁ͞Λ ͋ΒͨΊͯڧௐ͍ͨ͠
ࠓͷείʔϓ֎• ͦͦεςʔλείʔυ Λ͍͚Δ͖͔• ྫ: validation error ͷͱ͖ʹ 400 BAD REQUEST Λฦ͖͔͢Ͳ͏͔• ͜Ε͜ΕͰਂ͍
૾ͯͨͭ͠
ͳΜͱͳ͍͘ͳίʔυ
ࡶͳࢦఠ• BAD REQUEST ͕ 400ͱ͔ ͩΕͰͬͯΔΑͶ?• ࡶͳݴޠԽ
ॏཁͳࢦఠ
ΫΠζ• HTTPεςʔλείʔυ 409
ΫΠζ• HTTPεςʔλείʔυ 409 ҎԼͷ͏ͪͲΕ• PERMANENT REDIRECT• INSUFFICIENT STORAGE• CONFLICT• PROCESSING
ΫΠζ• HTTPεςʔλείʔυ 409 ҎԼͷ͏ͪͲΕ• 308 PERMANENT REDIRECT• 507 INSUFFICIENT STORAGE• 409 CONFLICT• 102 PROCESSING
ྑ͍ࢦఠ
վળҊ
• ϚδοΫφϯόʔͷੋඇ• HTTPεςʔλείʔυΛͰϕλॻ͖͢Δ͜ͱͷੋඇ
ϚδοΫφϯόʔΛΊ͙Δ• "Մಡੑ͕ѱ͍" (not readable)• ࡶͳݴޠԽ
ϚδοΫφϯόʔͷՄಡੑ͕͍ͱ• Կʹର͢Δ͔͕ͩΘ͔Βͳ͍Α• ࣗମͷࠜڌ(ଥੑ)͕Θ͔Βͳ͍Α• ڞ௨Խ͞Εͯͳ͍Α• ϚδοΫφϯόʔѱɺແ༻
Կʹର͢Δ͔͕ͩΘ͔Βͳ͍Α• price * 1.08• ͦͦ 1.08 ͕͜͜ʹग़͖͍ͯͯΔཧ༝͕Θ͔Βͳ͍• ԋࢉͯ͠Δͱ͖ʹى͖͕ͪ
Կʹର͢Δ͔͕ͩΘ͔Βͳ͍Α• ؔ(ϝιου)ݺͼग़͠ʹΛ͢ͱ͖ɺ ͜ͷى͜Βͳ͍• ϝιουఆٛΛݟΕΘ͔ΔͷͰ• લͷྫͰ TAX_RATE ఆΛఆٛ͢ΔΑΓɺ(ྫ͑) price_included_tax(base_price) ϝιουΛఆٛͨ͠΄͏͕͍͍
ࣗମͷࠜڌ(ଥੑ)͕Θ͔Βͳ͍Α• 409 ͕εςʔλείʔυΛදͯ͠ΔͷΘ͔Δ͕ɺ ͳͥ 409 ͳͷ͔͕Θ͔Βͳ͍• ׂͱϚΠφʔͳͳؾ͕ͯ͠Δɻ͜Εʹ͍ͭͯޙड़
ڞ௨Խ͞Εͯͳ͍Α• ڞ௨Խ͖͢ͳΒͯ͘͠Ε• Ͳ͏͍͏࣌ʹڞ௨Խ͖͔͢Θ͔Δͳ?
const LIMIT = 10;
const LIMIT = 10; • Լͷ͏ͪ1ͭղܾ͍ͯ͠ͳ͍• Կʹର͢Δ͔͕ͩ Θ͔Βͳ͍Α• ࣗମͷࠜڌ(ଥੑ)͕ Θ͔Βͳ͍Α• ڞ௨Խ͞Εͯͳ͍Α
Ξϯέʔτ
ͷதͰͷਖ਼ղ
֮͑Δඞཁͳ͍• 409 => conflict άάΕҰॠͰग़ͯ͘Δ• ඞཁʹͳΔසͷ• ස͕ଟ͍ͳΒ͔֬ʹ͚ͩͲɺ ͦΜͳʹ͠ΐͬͪΎ͏͋Δ...?
ͲͪΒͷใྔ͕େࣄ͔?• 409• ༷ɺΠϯλʔϑΣΠε• conflict• ҙຯɺ࣮ʹ͍ۙ
ΠϯλʔϑΣΠεͷॏཁੑ• ྫ͑ OpenAPI 3• Web API ͷ༷ͷ υΩϡϝϯτ• ͜͜ʹ `409` ͱͰॻ͘
4xx = Client Error• 409 ͩͬͨΒͱΓ͋͑ͣ Client Errorͩͱ͍͏ͱ͜Ζ·Ͱ Θ͔Δ• Conflict ͬͯݴΘΕͯΑ͘Θ͔Βͳ͘ͳ͍...?
·ͱΊ• ؒҧ͍ͳ͘೦ͳίʔυݴ͍ա͗ͩͬͨɺ͢·Μ• ϚδοΫφϯόʔ࠷ߴ• ઃܭݴޠԽΛ͍ͯ͜͠͏• ͑͢ͳΈνϟϯεࣗΒͷखͰ௫Ήͷ