HTTP शीर्षलेख या प्रतिक्रिया शरीर में बाकी त्रुटि संदेश?




rest http-error (2)

मेरे पास एक आरईएसटी सेवा है जो आईफोन और एंड्रॉइड क्लाइंट के संपर्क में है। वर्तमान में मैं HTTP कोड 200, 400, 401, 403, 404, 40 9, 500 इत्यादि का पालन करता हूं।

मेरा सवाल यह है कि त्रुटि का कारण / विवरण / कारण डालने के लिए अनुशंसित जगह कहां है? क्या आरईएसटी एपीआई के लिए हेडर में हमेशा कस्टम कारण होने के लिए यह अधिक समझ में आता है?

< HTTP/1.1 400 Bad Request - Missing Required Parameters.
< Date: Thu, 20 Dec 2012 01:09:06 GMT
< Server: Apache/2.2.22 (Ubuntu)
< Connection: close
< Transfer-Encoding: chunked

या JSON के माध्यम से प्रतिक्रिया शरीर में यह बेहतर है?

< HTTP/1.1 400 Bad Request
< Date: Thu, 20 Dec 2012 01:09:06 GMT
< Server: Apache/2.2.22 (Ubuntu)
< Connection: close
< Transfer-Encoding: chunked
< Content-Type: application/json
{ "error" : "Missing Required Parameters" }

400.x त्रुटि कोड के लिए HTTP विनिर्देश से उद्धरण:

स्टेटस कोड का 4xx वर्ग उन मामलों के लिए है, जिनके कारण क्लाइंट में कमी आई है। एक HEAD अनुरोध का जवाब देने के अलावा, सर्वर को त्रुटि स्थिति की व्याख्या युक्त एक इकाई शामिल करनी चाहिए, और चाहे वह अस्थायी या स्थायी स्थिति हो। ये स्थिति कोड किसी भी अनुरोध विधि पर लागू होते हैं। उपयोगकर्ता एजेंट उपयोगकर्ता को किसी भी शामिल इकाई को प्रदर्शित करना चाहिए।

त्रुटि प्रतिक्रिया को HTTP प्रतिक्रिया के शरीर में एक इकाई के रूप में शामिल करना सबसे अच्छा अभ्यास है - चाहे वह JSON, सादा पाठ, स्वरूपित HTML हो, या जो भी अन्य प्रारूप आप उपयोग करना चाहते हैं।


मैं हमेशा दोनों करता हूं। मैं आम तौर पर स्थिति संदेश को उस चीज़ पर सेट करता हूं जो फ्रंट एंड उपयोगकर्ता के अनुकूल तरीके से प्रदर्शित हो सकता है जैसे कि "40 9 - नया उपयोगकर्ता नहीं जोड़ सका, वे पहले से मौजूद हैं।"

इसके बाद मैं शरीर में त्रुटि शर्तों का विवरण जेएसओएन के रूप में शामिल करता हूं ताकि यूआई डेवलपर्स क्या करना है इसके बारे में बुद्धिमान विकल्प बनाने का प्रयास कर सकें।

{
  "status": 409,
  "message": "The user <username> was already added on <when> by <who> and given the user id 12345.",
  "errors": {
    "id": 12345
  }
}




http-error