Saya mencari panduan tentang praktik yang baik untuk mengembalikan kesalahan dari REST API. Saya sedang mengerjakan API baru sehingga saya bisa mengambil arah apa pun sekarang. Jenis konten saya adalah XML saat ini, tetapi saya berencana untuk mendukung JSON di masa depan.
Saya sekarang menambahkan beberapa kasus kesalahan, seperti misalnya klien mencoba menambahkan sumber daya baru tetapi telah melebihi kuota penyimpanannya. Saya sudah menangani kasus kesalahan tertentu dengan kode status HTTP (401 untuk otentikasi, 403 untuk otorisasi dan 404 untuk URI permintaan buruk). Saya melihat-lihat kode kesalahan HTTP yang diberkati, tetapi tak satu pun dari kisaran 400-417 yang tampaknya benar untuk melaporkan kesalahan spesifik aplikasi. Jadi pada awalnya saya tergoda untuk mengembalikan kesalahan aplikasi saya dengan 200 OK dan payload XML tertentu (mis. Bayar kami lebih banyak dan Anda akan mendapatkan penyimpanan yang Anda butuhkan!) Tapi saya berhenti untuk memikirkannya dan sepertinya berbusa (/ mengangkat bahu ngeri). Selain itu rasanya seperti saya memecah tanggapan kesalahan menjadi kasus yang berbeda, karena beberapa kode status http didorong dan lainnya didorong oleh konten.
Jadi apa rekomendasi industri? Praktik yang baik (tolong jelaskan alasannya!) Dan juga, dari pov klien, penanganan kesalahan seperti apa di API REST yang mempermudah kode klien?