บอกว่าฉันมีปลายทาง REST ที่ใช้จำนวนเต็มเป็นพารามิเตอร์:
/makeWaffles?numberOfWaffles=3
ในกรณีนี้ฉันต้องการให้ตัวเลขเป็นบวกเพราะฉันไม่สามารถลบจำนวนวาฟเฟิลได้ (และการขอ 0 วาฟเฟิลเป็นการเสียเวลา) ดังนั้นฉันต้องการปฏิเสธคำขอใด ๆ ที่ไม่มีจำนวนเต็มบวก ฉันต้องการปฏิเสธคำขอที่มีจำนวนเต็มที่เกินจำนวนสูงสุด (สมมติว่าเป็น MAX_INTEGER)
ในกรณีที่มีคนขอวาฟเฟิลในจำนวนที่ไม่เป็นบวกฉันควรส่งคืนสถานะ HTTP 400 (คำขอไม่ถูกต้อง) หรือไม่ ความคิดเริ่มต้นของฉันคือใช่: ไม่ใช่หมายเลขที่ถูกต้องสำหรับฉันที่จะทำตามคำขอ อย่างไรก็ตามRFCไม่ได้กล่าวถึงกฎเกณฑ์ทางธุรกิจว่าเป็นเหตุผลในการ:
รหัสสถานะ 400 (คำขอไม่ถูกต้อง) บ่งชี้ว่าเซิร์ฟเวอร์ไม่สามารถหรือไม่สามารถประมวลผลคำขอเนื่องจากสิ่งที่ถูกมองว่าเป็นข้อผิดพลาดของลูกค้า (เช่นไวยากรณ์คำขอที่ผิดรูปแบบ, กรอบข้อความคำขอที่ไม่ถูกต้องหรือการกำหนดเส้นทางคำขอหลอกลวง)
กฎทางธุรกิจไม่ได้อยู่ภายใต้ตัวอย่างใด ๆ มันถูกต้องทางไวยากรณ์มีการวางกรอบอย่างเหมาะสมและไม่ได้กำหนดเส้นทางคำขอที่หลอกลวง
ดังนั้นฉันควรคืนสถานะ HTTP 400 (คำขอไม่ถูกต้อง) หากพารามิเตอร์ถูกต้องทางไวยากรณ์ แต่ละเมิดกฎทางธุรกิจหรือไม่ หรือมีสถานะที่เหมาะสมกว่าที่จะกลับมา?