Katakanlah bahwa saya memiliki titik akhir REST yang menggunakan integer sebagai parameter:
/makeWaffles?numberOfWaffles=3
Dalam hal ini, saya ingin angka menjadi positif karena saya tidak dapat membuat jumlah negatif wafel (dan meminta 0 wafel adalah buang-buang waktu). Jadi saya ingin menolak permintaan yang tidak mengandung bilangan bulat positif. Saya juga ingin menolak permintaan yang melebihi beberapa bilangan bulat maksimum (katakanlah untuk saat ini adalah MAX_INTEGER).
Jika seseorang meminta jumlah wafel yang tidak positif, haruskah saya mengembalikan status HTTP 400 (Permintaan Buruk)? Pikiran awal saya adalah ya: itu bukan nomor yang valid bagi saya untuk menyelesaikan permintaan. Namun, RFC tidak menyebutkan aturan bisnis sebagai alasan untuk membuangnya:
Kode status 400 (Permintaan Buruk) menunjukkan bahwa server tidak dapat atau tidak akan memproses permintaan karena sesuatu yang dianggap sebagai kesalahan klien (misalnya, sintaks permintaan salah bentuk, pembingkaian pesan permintaan tidak valid, atau perutean permintaan yang menipu).
Aturan bisnis tidak termasuk dalam salah satu dari tiga contoh itu. Secara sintaksis benar, dibingkai dengan benar, dan itu bukan perutean permintaan yang menipu.
Jadi, haruskah saya mengembalikan status HTTP 400 (Permintaan Buruk) jika parameter secara sintaksis benar, tetapi melanggar aturan bisnis? Atau apakah ada status yang lebih tepat untuk dikembalikan?