Saya membuat RESTful API yang akan memproses sejumlah interaksi pengguna, termasuk melakukan pemesanan menggunakan kartu kredit yang tersimpan.
Jika pesanan berhasil, saya mengembalikan 200 OK, dan dalam kasus permintaan pesanan salah format atau tidak valid, saya mengembalikan 400 Permintaan Buruk. Tetapi apa yang harus saya kembalikan jika ada masalah selama pemrosesan pesanan yang sebenarnya?
- Klien POST pesanan ke server untuk sumber daya pengguna. Jika pengguna tidak ada, 404 Not Found dikembalikan.
- Format dan informasi pesanan divalidasi. Jika tidak valid, 400 Permintaan Buruk dikembalikan.
- Pesanan diproses. Jika pesanan berhasil, 201 Dibuat dikembalikan untuk pesanan. Jika terjadi kesalahan yang tidak terduga, 500 Server Error dikembalikan.
Langkah terakhir adalah masalahnya - apa yang harus saya kembalikan jika pesanan tidak selesai karena alasan lain? Skenario yang mungkin termasuk:
- Produk sudah habis terjual
- Batas pesanan maksimum pengguna tercapai
- Kegagalan transaksi kartu kredit (dana tidak mencukupi, dll.)
Sepertinya ini tidak akan sesuai untuk 400 atau 500. Jika ada, saya bisa melihatnya sebagai 400 jika tidak ada kode yang lebih baik - permintaan tidak valid menurut aturan bisnis. Sepertinya tidak akurat.
Edit: Juga ditemukan diskusi yang ada tentang topik yang sama ini. Semua jawaban di sana tampaknya mengarah pada penggunaan kode status untuk jenis pelanggaran ini, dengan beberapa diskusi antara menggunakan 400, 409, atau ekstensi 422.