Saya merancang REST API untuk proyek di mana pengguna selalu menggunakan salah satu dari beberapa "paket" - setiap paket menentukan beberapa batasan sumber daya, seperti jumlah maksimal pengguna yang mungkin dimiliki akun atau jumlah maksimum data yang dapat mereka unggah. Setelah salah satu dari batasan ini tercapai, pengguna dapat meningkatkan rencana mereka (pada dasarnya membayar) untuk mendapatkan lebih banyak sumber daya.
Saya ingin mengembalikan kode status khusus yang menunjukkan situasi di mana tindakan tidak dapat dilakukan karena batas sumber daya akun, dan memutakhirkan paket akan menyelesaikan ini - misalnya jika pengguna menggunakan 100% dari kapasitas penyimpanan mereka dan mencoba mengunggah file tambahan , mereka akan mendapatkan respons ini.
Para kandidat adalah, IMHO:
403 Forbidden
- Namun, saya ingin membedakan antara kasus ini dan kasus-kasus lain di mana pengguna tidak memiliki izin untuk melakukan tindakan ini.401 Unauthorized
- bukan ide yang baik, kami menggunakan ini untuk masalah terkait otentikasi.402 Payment Required
- masuk akal tapi saya khawatir menggunakan kode status yang non-standar namun dicadangkanSesuatu yang bahkan kurang standar seperti
423 Locked
tidak mungkin kita akan menggunakannya untuk hal lain di masa depan
Pilihan lain adalah menggunakan sesuatu yang sangat standar seperti 403
tetapi menunjukkan kekhasan kesalahan dalam badan tanggapan.
Saya ingin tahu pendekatan mana yang Anda yakini akan (a) bekerja paling baik dalam jangka panjang dan (b) akan lebih baik berpegang pada prinsip RESTful.