BAD_REQUEST = 400 をめぐる問い。マジックナンバーは可読性を下げるのか? / bad request is 400

942bb606679caf4c57b38927f83178e1?s=47 qsona
August 03, 2019

BAD_REQUEST = 400 をめぐる問い。マジックナンバーは可読性を下げるのか? / bad request is 400

すえなみチャンス暑気払い

942bb606679caf4c57b38927f83178e1?s=128

qsona

August 03, 2019
Tweet

Transcript

  1. BAD_REQUEST = 400 ΛΊ͙Δ໰͍ɻ ϚδοΫφϯόʔ͸ՄಡੑΛ
 Լ͛Δͷ͔? @qsona (FiNC Technologies)

  2. None
  3. None
  4. None
  5. None
  6. ࠓ೔࿩͢͜ͱ • BAD_REQUEST = 400 ͷྫ͔Β
 ϚδοΫφϯόʔͷੋඇͳͲʹ๲Β·ͤͯٞ࿦͢Δ • ͦͷաఔͰɺʮઃܭͷݴޠԽʯͷॏཁ͞Λ
 ͋ΒͨΊͯڧௐ͍ͨ͠

  7. ࠓ೔ͷείʔϓ֎ • ͦ΋ͦ΋εςʔλείʔυ
 Λ࢖͍෼͚Δ΂͖͔ • ྫ: validation error ͷͱ͖ʹ
 400

    BAD REQUEST
 Λฦ͢΂͖͔Ͳ͏͔ • ͜Ε͸͜ΕͰਂ͍࿩
  8. ૝૾ͯͨ͠΍ͭ

  9. ͳΜͱͳ͍͘΍ͳίʔυ

  10. ࡶͳࢦఠ • BAD REQUEST ͕ 400ͱ͔
 ͩΕͰ΋஌ͬͯΔΑͶ? • ࡶͳݴޠԽ

  11. ॏཁͳࢦఠ

  12. ΫΠζ • HTTPεςʔλείʔυ 409

  13. ΫΠζ • HTTPεςʔλείʔυ 409 ͸ҎԼͷ͏ͪͲΕ • PERMANENT REDIRECT • INSUFFICIENT

    STORAGE • CONFLICT • PROCESSING
  14. ΫΠζ • HTTPεςʔλείʔυ 409 ͸ҎԼͷ͏ͪͲΕ • 308 PERMANENT REDIRECT •

    507 INSUFFICIENT STORAGE • 409 CONFLICT • 102 PROCESSING
  15. ྑ͍ࢦఠ

  16. վળҊ

  17. ࿦఺ • ϚδοΫφϯόʔͷੋඇ • HTTPεςʔλείʔυΛ਺஋Ͱϕλॻ͖͢Δ͜ͱͷੋඇ

  18. ϚδοΫφϯόʔΛΊ͙Δ࿦఺ • "Մಡੑ͕ѱ͍" (not readable) • ࡶͳݴޠԽ

  19. ϚδοΫφϯόʔͷՄಡੑ͕௿͍ͱ͸ • Կʹର͢Δ਺஋͔͕ͩΘ͔Βͳ͍Α • ਺஋ࣗମͷࠜڌ(ଥ౰ੑ)͕Θ͔Βͳ͍Α • ڞ௨Խ͞Εͯͳ͍Α • ϚδοΫφϯόʔ͸ѱɺ໰౴ແ༻

  20. Կʹର͢Δ਺஋͔͕ͩΘ͔Βͳ͍Α • price * 1.08 • ͦ΋ͦ΋ 1.08 ͕͜͜ʹग़͖͍ͯͯΔཧ༝͕Θ͔Βͳ͍ •

    ਺஋ԋࢉͯ͠Δͱ͖ʹى͖͕ͪ
  21. Կʹର͢Δ਺஋͔͕ͩΘ͔Βͳ͍Α • ؔ਺(ϝιου)ݺͼग़͠ʹ਺஋Λ౉͢ͱ͖͸ɺ
 ͜ͷ໰୊͸ى͜Βͳ͍ • ϝιουఆٛΛݟΕ͹Θ͔ΔͷͰ • લͷྫͰ͸ TAX_RATE ఆ਺Λఆٛ͢ΔΑΓ΋ɺ(ྫ͑͹)


    price_included_tax(base_price) ϝιουΛఆٛͨ͠΄͏͕͍͍
  22. ਺஋ࣗମͷࠜڌ(ଥ౰ੑ)͕Θ͔Βͳ͍Α • 409 ͕εςʔλείʔυΛදͯ͠Δͷ͸Θ͔Δ͕ɺ
 ͳͥ 409 ͳͷ͔͕Θ͔Βͳ͍ • ׂͱϚΠφʔͳ໰୊ͳؾ͕ͯ͠Δɻ͜Εʹ͍ͭͯ͸ޙड़

  23. ڞ௨Խ͞Εͯͳ͍Α • ڞ௨Խ͢΂͖ͳΒͯ͘͠Ε • Ͳ͏͍͏࣌ʹڞ௨Խ͢΂͖͔͸Θ͔Δͳ?

  24. const LIMIT = 10; ໰୊

  25. const LIMIT = 10; ໰୊ • Լͷ͏ͪ1ͭ΋ղܾ͍ͯ͠ͳ͍ • Կʹର͢Δ਺஋͔͕ͩ
 Θ͔Βͳ͍Α

    • ਺஋ࣗମͷࠜڌ(ଥ౰ੑ)͕
 Θ͔Βͳ͍Α • ڞ௨Խ͞Εͯͳ͍Α
  26. Ξϯέʔτ

  27. ๻ͷதͰͷਖ਼ղ

  28. None
  29. ֮͑Δඞཁ͸ͳ͍ • 409 => conflict ͸άάΕ͹ҰॠͰग़ͯ͘Δ • ඞཁʹͳΔස౓ͷ໰୊ • ස౓͕ଟ͍ͳΒ͔֬ʹ໰୊͚ͩͲɺ


    ͦΜͳʹ͠ΐͬͪΎ͏͋Δ...?
  30. ͲͪΒͷ৘ใྔ͕େࣄ͔? • 409 • ࢓༷ɺΠϯλʔϑΣΠε • conflict • ҙຯɺ࣮૷ʹ͍ۙ

  31. None
  32. ΠϯλʔϑΣΠεͷॏཁੑ • ྫ͑͹ OpenAPI 3 • Web API ͷ࢓༷ͷ
 υΩϡϝϯτ

    • ͜͜ʹ͸ `409` ͱ਺஋Ͱ ॻ͘
  33. 4xx = Client Error • 409 ͩͬͨΒͱΓ͋͑ͣ Client Errorͩͱ͍͏ͱ͜Ζ·Ͱ͸
 Θ͔Δ

    • Conflict ͬͯݴΘΕͯ΋Α͘Θ͔Βͳ͘ͳ͍...?
  34. ·ͱΊ • ؒҧ͍ͳ͘࢒೦ͳίʔυ͸ݴ͍ա͗ͩͬͨɺ͢·Μ • ϚδοΫφϯόʔ͸࠷ߴ • ઃܭ͸ݴޠԽΛ͍ͯ͜͠͏ • ͑͢ͳΈνϟϯε͸ࣗΒͷखͰ௫Ή΋ͷ

  35. None
  36. None