Saya memiliki aplikasi yang mengirim pesan ke pengguna. Dalam permintaan posting, string XML ditransfer yang terdiri dari semua pengguna yang harus menerima pesan khusus itu. Jika salah satu pengguna dalam daftar tidak ada, saya mengembalikan daftar pengguna yang hilang ke klien untuk evaluasi lebih lanjut.
Sekarang saya bertanya pada diri sendiri apa yang akan menjadi kode status yang tepat untuk aplikasi yang mengatakan bahwa permintaan tersebut diterima tetapi ada hal-hal yang tidak dapat dilakukan.
Masalahnya akan dihindari jika tidak diizinkan untuk memasukkan pengguna yang hilang dalam daftar. Maka upaya pengiriman hanya akan mendapatkan kesalahan 4xx. Tetapi tidak ada gunanya membentuk API dengan cara ini. Di sisi lain, saya dapat menganggap kondisi kesalahan hanya untuk aplikasi tertentu. Tetapi mengirim 200 tidak terasa benar. Dan alangkah baiknya memberi petunjuk kepada klien kapan harus melihat lebih dalam dalam respons kesalahan. misalnya untuk menghindari pengiriman pesan ke pengguna tersebut berulang kali
sumber
Saya memiliki masalah yang sama, dan saya akhirnya menggunakan dua solusi berbeda:
202: Accepted
, menunjukkan bahwa permintaan itu baik-baik saja, tetapi tidak ada jaminan semuanya benar-benar berjalan sebagaimana mestinya.200
respons normal , tetapi sertakan daftar apa yang tidak berjalan dengan baik di isi respons.Yang kedua biasanya berfungsi paling baik, tetapi yang pertama bagus jika Anda malas atau menggunakan antrian untuk memproses.
sumber
Bagaimana dengan menggunakan 206 Konten Parsial. Saya tahu 206 lebih banyak tentang rentang, tetapi bagaimana jika itu bisa menunjukkan permintaan yang berhasil sebagian?
sumber
HyperText Transfer Protocol menangani sisi transmisi sesuatu. Tidak ada kode kesalahan untuk menangani kesalahan tingkat aplikasi.
Mengembalikan 200 adalah hal yang benar untuk dilakukan di sini. Sejauh menyangkut HTTP, permintaan itu diterima dengan benar, ditangani dengan benar, dan Anda mengirim balasannya. Jadi, pada level HTTP semuanya OK. Kesalahan atau peringatan apa pun yang terkait dengan aplikasi yang berjalan di atas http harus ada di dalam respons. Melakukannya juga akan mencegah beberapa masalah buruk yang mungkin Anda hadapi dengan server proxy yang mungkin tidak menangani respons tertentu seperti yang Anda harapkan.
sumber