Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BAD_REQUEST = 400 をめぐる問い。マジックナンバーは可読性を下げるのか? / ...
Search
qsona
August 03, 2019
Technology
7
4.8k
BAD_REQUEST = 400 をめぐる問い。マジックナンバーは可読性を下げるのか? / bad request is 400
すえなみチャンス暑気払い
qsona
August 03, 2019
Tweet
Share
More Decks by qsona
See All by qsona
サーバー間 GraphQL と webmock-graphql の話 / server-to-server graphql and webmock-graphql
qsona
4
500
Backend エンジニア視点からの GraphQL / GraphQL from a perspective of backend engineer
qsona
28
8.6k
3 Practices about Service-to-Service GraphQL Ruby Client
qsona
1
1k
いかにして GraphQL を組織に導入するか (新規開発編) / how we introduce GraphQL on scratch development
qsona
6
4k
Well-organized Transaction Script - リファクタリングの妥協的手法 -
qsona
4
1.4k
GraphQL と Prisma から考える次のN年を見据えた技術選定 / Architecture decision for the next N years at StudySapuri
qsona
25
14k
最高のマスターデータ管理手法考察 & VSCode Extension を活用した話 / developing masterdata management tool by using vscode extension
qsona
9
6.5k
GraphQL を活用したスキーマ駆動開発の実践 / schema-driven development with GraphQL
qsona
6
5.5k
GraphQL を利用したアーキテクチャの勘所 / Architecture practices with GraphQL
qsona
37
16k
Other Decks in Technology
See All in Technology
【CEDEC2025】大規模言語モデルを活用したゲーム内会話パートのスクリプト作成支援への取り組み
cygames
PRO
2
770
【新卒研修資料】数理最適化 / Mathematical Optimization
brainpadpr
25
11k
Google Cloud で学ぶデータエンジニアリング入門 2025年版 #GoogleCloudNext / 20250805
kazaneya
PRO
11
2.6k
MCP認可の現在地と自律型エージェント対応に向けた課題 / MCP Authorization Today and Challenges to Support Autonomous Agents
yokawasa
5
1.7k
Tableau API連携の罠!?脱スプシを夢見たはずが、逆に依存を深めた話
cuebic9bic
3
210
AWS re:Inforce 2025 re:Cap Update Pickup & AWS Control Tower の運用における考慮ポイント
htan
1
200
私とAWSとの関わりの歩み~意志あるところに道は開けるかも?~
nagisa53
1
160
robocopy の怖い話/scary-story-about-robocopy
emiki
0
460
Agent Development Kitで始める生成 AI エージェント実践開発
danishi
0
120
生成AI導入の効果を最大化する データ活用戦略
ham0215
0
110
alecthomas/kong はいいぞ
fujiwara3
6
1.4k
20250728 MCP, A2A and Multi-Agents in the future
yoshidashingo
1
210
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Designing for Performance
lara
610
69k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Visualization
eitanlees
146
16k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
How to train your dragon (web standard)
notwaldorf
96
6.1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Producing Creativity
orderedlist
PRO
346
40k
Transcript
BAD_REQUEST = 400 ΛΊ͙Δ͍ɻ ϚδοΫφϯόʔՄಡੑΛ Լ͛Δͷ͔? @qsona (FiNC Technologies)
None
None
None
None
ࠓ͢͜ͱ • 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ͭղܾ͍ͯ͠ͳ͍ • Կʹର͢Δ͔͕ͩ Θ͔Βͳ͍Α
• ࣗମͷࠜڌ(ଥੑ)͕ Θ͔Βͳ͍Α • ڞ௨Խ͞Εͯͳ͍Α
Ξϯέʔτ
ͷதͰͷਖ਼ղ
None
֮͑Δඞཁͳ͍ • 409 => conflict άάΕҰॠͰग़ͯ͘Δ • ඞཁʹͳΔසͷ • ස͕ଟ͍ͳΒ͔֬ʹ͚ͩͲɺ
ͦΜͳʹ͠ΐͬͪΎ͏͋Δ...?
ͲͪΒͷใྔ͕େࣄ͔? • 409 • ༷ɺΠϯλʔϑΣΠε • conflict • ҙຯɺ࣮ʹ͍ۙ
None
ΠϯλʔϑΣΠεͷॏཁੑ • ྫ͑ OpenAPI 3 • Web API ͷ༷ͷ υΩϡϝϯτ
• ͜͜ʹ `409` ͱͰ ॻ͘
4xx = Client Error • 409 ͩͬͨΒͱΓ͋͑ͣ Client Errorͩͱ͍͏ͱ͜Ζ·Ͱ Θ͔Δ
• Conflict ͬͯݴΘΕͯΑ͘Θ͔Βͳ͘ͳ͍...?
·ͱΊ • ؒҧ͍ͳ͘೦ͳίʔυݴ͍ա͗ͩͬͨɺ͢·Μ • ϚδοΫφϯόʔ࠷ߴ • ઃܭݴޠԽΛ͍ͯ͜͠͏ • ͑͢ͳΈνϟϯεࣗΒͷखͰ௫Ήͷ
None
None