मैंने # 2 स्वयं को दो बार उपयोग किया है। क्या यह # 1 से बेहतर है? मुझे लगता है कि इस पर निर्भर करता है कि आपके एपीआई का क्या उपयोग किया जा रहा है।
मुझे # 2 पसंद है क्योंकि यह एक डेवलपर देता है जो कुछ परीक्षण कॉल के साथ एपीआई का परीक्षण करता है, अनुरोध में किए गए सभी त्रुटियों/गलतियों का त्वरित अवलोकन, इसलिए वह तुरंत जानता है कि उसे कौन सी त्रुटियों/गलतियों को ठीक करना है उस अनुरोध को वैध बनाओ। यदि आप त्रुटियों को एक-एक करके वापस करते हैं (जैसे # 1 में) आपको अनुरोध को फिर से प्रयास करना होगा और उम्मीद है कि यह इस समय मान्य होगा।
लेकिन जैसा कि मैंने कहा कि # 2 डेवलपर्स के लिए बहुत उपयोगी है, लेकिन कारण वास्तव में अंतिम उपयोगकर्ताओं पर लागू नहीं होते हैं। अंतिम उपयोगकर्ता आमतौर पर परवाह नहीं करते हैं कि यह कैसे कार्यान्वित किया जाता है। क्या सॉफ़्टवेयर 1 अनुरोध कर रहा है जो 5 त्रुटियों या 5 बाद के अनुरोध देता है जो प्रत्येक को 1 त्रुटि देता है।
जब तक यह ग्राहक में अच्छी तरह से संभाला जाता है, तब तक अंतिम उपयोगकर्ता को अंतर नहीं दिखना चाहिए। निश्चित रूप से इसे कैसे संभालना है इस बात पर निर्भर करता है कि वास्तव में ग्राहक क्या है।
विकास को तेज करने के बाद, # 2 (उत्पादन में) का एक और लाभ यह है कि इसे कम अनुरोध करने की आवश्यकता है, जो निश्चित रूप से सर्वर लोड को कम करता है।
I would like to know if anyone went #2 and maybe have any improvements on it so I opened a bounty.
ज़रूर वहाँ किए जाने के लिए सुधार कर रहे हैं। जैसा कि है, शरीर में कुछ डेटा है जिसे छोड़ा जा सकता है।
{
"status": 400,
"error": {
"code": 1 //General bad Request code
"message": "Bad Request",
"developer_message": "Field validation errors."
"more_info": "www.api.com/help/errors/1",
"error_details": {
0: {
"code": 2 // Specific field validation error code
"message": "Field \"x\" is missing from the array structure",
"developer_message": "The request structure must contain the following fields {a,b,c{x,y,z}}",
"more_info": "www.api.com/help/errors/2"
},
1: {
(
"code": 3 // Specific field validation error code
"message": "Incorrect Format for field \"y\"",
"developer_message": "The field \"y\" must be in the form of \"Y-m-d\"",
"more_info": "www.api.com/help/errors/3"
)
}
)
HTTP प्रतिक्रियाओं के साथ, स्थिति कोड शरीर में नहीं जाना चाहिए, लेकिन शीर्षलेख में। इसका मतलब है कि "status": 400
और "message": "Bad Request"
यहां छोड़ा जा सकता है। 400 प्रतिक्रिया का स्टेटस कोड होना चाहिए, और 400 का मतलब खराब अनुरोध होना चाहिए। यह एक HTTP मानक है और प्रतिक्रिया में समझाया जाना नहीं है। "developer_message": "Field validation errors."
एक डुप्लिकेट है, क्योंकि प्रत्येक अलग त्रुटि में विशिष्ट त्रुटियां पहले ही शामिल हैं, इसलिए हम इसे छोड़ सकते हैं।
छोड़ देता है कि
{
"error": {
"code": 1 //General bad Request code
"more_info": "www.api.com/help/errors/1",
"error_details": {
0: {
"code": 2 // Specific field validation error code
"message": "Field \"x\" is missing from the array structure",
"developer_message": "The request structure must contain the following fields {a,b,c{x,y,z}}",
"more_info": "www.api.com/help/errors/2"
},
1: {
(
"code": 3 // Specific field validation error code
"message": "Incorrect Format for field \"y\"",
"developer_message": "The field \"y\" must be in the form of \"Y-m-d\"",
"more_info": "www.api.com/help/errors/3"
)
}
)
"code": 1 //General bad Request code
"more_info": "www.api.com/help/errors/1",
इन 2 लाइनों वास्तव में अब और मतलब नहीं है अब। उन्होंने यह भी आवश्यक हैं नहीं है, क्योंकि प्रत्येक त्रुटि यह अपने कोड और जानकारी लिंक है, इसलिए हम के रूप में अच्छी तरह से इन पंक्तियों पट्टी सकता है, छोड़ने के इस
{
"error": {
"error_details": {
0: {
"code": 2 // Specific field validation error code
"message": "Field \"x\" is missing from the array structure",
"developer_message": "The request structure must contain the following fields {a,b,c{x,y,z}}",
"more_info": "www.api.com/help/errors/2"
},
1: {
(
"code": 3 // Specific field validation error code
"message": "Incorrect Format for field \"y\"",
"developer_message": "The field \"y\" must be in the form of \"Y-m-d\"",
"more_info": "www.api.com/help/errors/3"
)
}
)
400 स्थिति कोड पहले से ही इंगित करता है एक त्रुटि थी, ताकि आप डॉन ' टी को अब "error": {error details}
इंगित करना होगा, क्योंकि हम पहले ही जानते हैं कि कोई त्रुटि हुई है। त्रुटियों की सूची बस रूट वस्तु बन कर सकते हैं:
[
{
"code": 2//Specificfieldvalidationerrorcode
"message": "Field \"x\" is missing from the array structure",
"developer_message": "The request structure must contain the following fields {a,b,c{x,y,z}}",
"more_info": "www.api.com/help/errors/2"
},
{
"code": 3//Specificfieldvalidationerrorcode
"message": "Incorrect Format for field \"y\"",
"developer_message": "The field \"y\" must be in the form of \"Y-m-d\"",
"more_info": "www.api.com/help/errors/3"
}
]
तो सब है कि शरीर में बचा है अब बस त्रुटियों की एक सूची है।
स्थिति कोड प्रतिक्रिया शीर्षलेख में निर्दिष्ट है।
विवरण प्रतिक्रिया शरीर में निर्दिष्ट हैं।
मैं जानना चाहता हूं कि कोई # 2 चला गया है और शायद इसमें कोई सुधार हो, इसलिए मैंने एक उपहार खोला। – Ski
इस एपीआई के लिए क्या उपयोग किया जाता है और त्रुटि संदेशों का उद्देश्य क्या होगा? क्या वे संदेश अंतिम उपयोगकर्ता को प्रदर्शित किए जाएंगे या नहीं? प्रति सेकंड/मिनट/दिन कितने अनुरोध की उम्मीद है? आपके प्रश्न का उत्तर उस जानकारी के बिना सटीक नहीं हो सकता है। आपके पास कोई जवाब नहीं था क्योंकि सवाल बहुत व्यापक है, यह वास्तव में एपीआई उपयोग पर निर्भर करता है। – skobaljic