Saya mengumpulkan spesifikasi untuk layanan REST, yang sebagiannya akan menggabungkan kemampuan untuk membatasi pengguna di seluruh layanan dan pada kelompok, atau pada sumber daya individu. Sama halnya, batas waktu untuk ini dapat dikonfigurasi per sumber daya / grup / layanan.
Saya hanya melihat melalui spesifikasi HTTP 1.1 dan mencoba memutuskan bagaimana saya akan berkomunikasi dengan klien bahwa permintaan tidak akan dipenuhi karena mereka telah mencapai batasnya.
Awalnya saya menemukan bahwa kode klien 403 - Forbidden
adalah satu, tetapi ini, dari spec:
Otorisasi tidak akan membantu dan permintaan TIDAK HARUS diulang
mengganggu ku.
Tampaknya benar-benar yang 503 - Service Unavailable
lebih baik untuk digunakan - karena memungkinkan untuk komunikasi waktu coba lagi melalui penggunaan Retry-After
header.
Mungkin saja di masa depan saya mungkin akan mendukung 'pembelian' lebih banyak permintaan melalui eCommerce (dalam hal ini akan lebih baik jika kode klien 402 - Payment Required
telah difinalisasi!) - tetapi saya pikir ini juga dapat diperas menjadi tanggapan 503.
Menurut Anda mana yang harus saya gunakan? Atau ada lagi yang belum saya pertimbangkan?
sumber
Hingga taraf tertentu, Anda bebas melakukan apa yang Anda suka dengan kode-kode itu, tetapi saya akan setuju bahwa Anda dapat menggunakan
503
, atau jika Anda mau402
, tanpa ada orang yang bisa mengeluh bahwa Anda melanggar sesuatu.Sunting: Seorang purist mungkin mengatakan bahwa Anda harus mulai dengan 503, lalu beralih begitu memungkinkan untuk melakukan pembayaran.
Tambahan yang bagus untuk ini di komentar:
sumber