ฉันกำลังสร้าง RESTful API ที่จะประมวลผลการโต้ตอบของผู้ใช้จำนวนมากรวมถึงการสั่งซื้อโดยใช้บัตรเครดิตที่จัดเก็บไว้
ในกรณีที่คำสั่งซื้อสำเร็จฉันจะส่งคืน 200 OK และในกรณีที่คำขอสั่งซื้อผิดรูปแบบหรือไม่ถูกต้องฉันจะส่งคืน 400 คำขอที่ไม่ถูกต้อง แต่ฉันควรส่งคืนอะไรหากเกิดปัญหาระหว่างการดำเนินการตามคำสั่งซื้อจริง
- ลูกค้า POSTS สั่งไปยังเซิร์ฟเวอร์สำหรับทรัพยากรผู้ใช้ หากไม่มีผู้ใช้ 404 Not Found จะถูกส่งกลับ
- รูปแบบคำสั่งซื้อและข้อมูลได้รับการตรวจสอบแล้ว หากไม่ถูกต้อง 400 คำขอที่ไม่ถูกต้องจะถูกส่งกลับ
- คำสั่งซื้อได้รับการดำเนินการ หากคำสั่งซื้อสำเร็จจะมีการส่งคืน 201 ที่สร้างขึ้นสำหรับคำสั่งซื้อ หากพบข้อผิดพลาดที่ไม่คาดคิดข้อผิดพลาด 500 เซิร์ฟเวอร์จะถูกส่งกลับ
ขั้นตอนสุดท้ายคือปัญหา - ฉันจะคืนอะไรได้บ้างหากคำสั่งซื้อไม่สมบูรณ์ด้วยเหตุผลอื่นใด สถานการณ์ที่เป็นไปได้อาจรวมถึง:
- สินค้าหมด
- ถึงขีด จำกัด การสั่งซื้อสูงสุดของผู้ใช้แล้ว
- การทำธุรกรรมบัตรเครดิตล้มเหลว (เงินไม่เพียงพอ ฯลฯ )
ดูเหมือนว่ามันจะไม่เหมาะสมสำหรับ 400 หรือ 500 หากสิ่งใดที่ฉันเห็นว่าเป็น 400 หากไม่มีรหัสที่ดีกว่าคำขอนั้นไม่ถูกต้องตามกฎทางธุรกิจ ดูเหมือนจะไม่ถูกต้อง
แก้ไข: พบการสนทนาที่มีอยู่ในหัวข้อเดียวกันนี้ คำตอบทั้งหมดดูเหมือนจะชี้ไปที่การใช้รหัสสถานะสำหรับการละเมิดประเภทนี้โดยมีการอภิปรายระหว่างการใช้ส่วนขยาย 400, 409 หรือ 422