REST API त्रुटि अच्छी प्रथाओं को लौटाती है [बंद]


623

जब मैं REST API से त्रुटियों को वापस करने की बात करता हूं, तो मैं अच्छे व्यवहार पर मार्गदर्शन की तलाश कर रहा हूं। मैं एक नए एपीआई पर काम कर रहा हूं ताकि मैं इसे अभी किसी भी दिशा में ले जा सकूं। मेरी सामग्री प्रकार फिलहाल XML है, लेकिन मैं भविष्य में JSON का समर्थन करने की योजना बना रहा हूं।

मैं अब कुछ त्रुटि मामलों को जोड़ रहा हूं, उदाहरण के लिए जैसे एक ग्राहक एक नए संसाधन को जोड़ने का प्रयास करता है, लेकिन उसके भंडारण कोटा को पार कर गया है। मैं पहले से ही HTTP स्टेटस कोड (प्रमाणीकरण के लिए 401, प्राधिकरण के लिए 403 और सादे बुरे अनुरोध के लिए 404 यूआरआई) के साथ कुछ त्रुटि मामलों को संभाल रहा हूं। मैं धन्य HTTP त्रुटि कोड को देखता था, लेकिन 400-417 में से कोई भी अनुप्रयोग विशिष्ट त्रुटियों की रिपोर्ट करने के लिए सही नहीं लगता है। इसलिए पहले तो मुझे 200 ओके और एक विशिष्ट XML पेलोड (यानी हमें अधिक भुगतान करें और आपको आपकी आवश्यकता के अनुसार भंडारण मिलेगा!) के साथ अपना आवेदन त्रुटि वापस करने के लिए लुभाया गया था, लेकिन मैंने इसके बारे में सोचना बंद कर दिया और यह साबुन (/) लगता है श्रग हॉरर में)। इसके अलावा ऐसा लगता है कि मैं विभिन्न मामलों में त्रुटि प्रतिक्रियाओं को विभाजित कर रहा हूं, क्योंकि कुछ http स्थिति कोड संचालित हैं और अन्य सामग्री संचालित हैं।

तो उद्योग सिफारिशें क्या है? अच्छी प्रथाओं (कृपया समझाएं क्यों!) और भी, क्लाइंट पोव से, आरईएसटी एपीआई में किस तरह की त्रुटि से निपटने से क्लाइंट कोड के लिए जीवन आसान हो जाता है?


7
बस स्पष्ट करने के लिए: मुझे इसमें बहुत दिलचस्पी नहीं है कि किस विशेष HTTP स्थिति कोड को वापस करना है, लेकिन क्या HTTP स्थिति कोड के साथ पेलोड त्रुटियों को संयोजित करने के लिए एक अच्छा REST अभ्यास है या केवल पेलोड पर भरोसा करने के लिए बेहतर है।
रेमस रूसु

3
REST API Design Handbook इस विषय को काफी अच्छी तरह से कवर करता है।
रेमस रुसानु

12
सवाल राय के लिए नहीं पूछता है, लेकिन मार्गदर्शन / सिफारिशों के लिए और फिर से खुला होना चाहिए और संदर्भ के रूप में उपयोग किया जाना चाहिए। 2016 में बंद करने के लिए क्या सवाल था, जो 2009 में बनाया गया था, इसमें 400+ वोट हैं और राय के आधार पर मौजूदा जवाबों में से कोई भी नहीं
माइकल फ्रीजिम

4
अधिकांश ने उल्लेख नहीं किया, लेकिन HTTP त्रुटि कोड का उपयोग करने से समस्या का मुख्य कारण हो सकता है। HTTP ट्रांसपोर्ट प्रोटोकॉल है और एक 404 को इंगित करना चाहिए, कि URLon ट्रांसपोर्ट स्तर (जैसे गलत पथ) के साथ कोई समस्या थी। यदि एप्लिकेशन को अपनी आईडी द्वारा कोई डेटासेट नहीं मिल सकता है, तो यह एक आवेदन स्तर की त्रुटि है (परिवहन स्तर की त्रुटि नहीं) और 404, जैसा कि बाकी http स्थिति कोड उपयोगकर्ताओं द्वारा सुझाया गया है, गलत निष्कर्ष पर पहुंच सकता है। आमतौर पर मुझे स्टेटस कोड का उपयोग करके ट्रांसपोर्ट और एप्लिकेशन लेयर का मिश्रण पसंद नहीं आता।
SCI

जवाबों:


220

इसलिए पहले तो मुझे 200 ओके और एक विशिष्ट XML पेलोड (यानी हमें अधिक भुगतान करें और आपको आपकी आवश्यकता के अनुसार भंडारण मिलेगा!) के साथ अपना आवेदन त्रुटि वापस करने के लिए लुभाया गया था, लेकिन मैंने इसके बारे में सोचना बंद कर दिया और यह साबुन (/) लगता है श्रग हॉरर में)।

मैं 200 वापस नहीं करूंगा जब तक कि वास्तव में अनुरोध के साथ कुछ भी गलत नहीं था। से RFC2616 , 200 का मतलब है "अनुरोध सफल रहा।"

यदि ग्राहक का संग्रहण कोटा पार हो गया है (जो भी कारण से), मैं एक 403 (निषिद्ध) लौटाऊंगा:

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

यह क्लाइंट को बताता है कि अनुरोध ठीक था, लेकिन यह विफल हो गया (कुछ 200 ऐसा नहीं करता है)। यह आपको प्रतिक्रिया शरीर में समस्या (और इसके समाधान) को समझाने का अवसर भी देता है।

आपके मन में क्या अन्य विशिष्ट त्रुटि स्थितियां थीं?


6
क्या मुझे अपना विस्तृत त्रुटि संदेश शरीर में शामिल करना चाहिए, अर्थात। एक XML कोड / स्ट्रिंग जोड़ी? ग्राहक इससे कैसे निपटेंगे? उदाहरण के लिए, मुझे पता है कि C # WebRequest based क्लाइंट 'Bad Request' या 'Forbidden' को फेंक देंगे और रिस्पॉन्स बॉडी नहीं देंगे।
रेमस रूसु

18
403 "का शरीर" में त्रुटि का विवरण होना चाहिए। क्या कोई ग्राहक जानकारी का उपयोग करने के लिए तैयार है, एक और कहानी है। यह इस प्रारूप के लिए अन्य सभी पेलोड्स (जैसे, XML, JSON) के प्रारूप के समान है।
रिच अपोडाका

1
... और यदि विवरण 403 में वापस नहीं आए हैं, तो एक 404 "के बजाय" का उपयोग किया जा सकता है (मेरे लिए सबसे अच्छा विकल्प जैसा नहीं लगता है, हालांकि)।
अमीर अपोडका

6
404 विकल्प इस घटना के लिए है कि 403 उस एप्लिकेशन के बारे में विवरण प्रकट कर सकता है जिसे आप अनधिकृत उपयोगकर्ताओं के बारे में नहीं जानना चाहते हैं - यदि कोई गैर-प्रशासनिक उपयोगकर्ता किसी व्यवस्थापक-केवल URL को हिट करता है, उदाहरण के लिए, आप उस उपयोगकर्ता को नहीं चाहते हैं यह जानने के लिए कि यह आदि के लिए एक मान्य URL है, इस मामले में, हालांकि, 403 पूरी तरह से उपयुक्त है।
ग्रेग कैम्पबेल

16
मुझे लगता है कि यह एक बहुत ही बेकार जवाब है। मैंने सोचा होगा कि अधिक महत्वपूर्ण पहलू इस संबंध में है कि क्या स्थिति को पूरी तरह से उपयोग किया जाना चाहिए, या क्या पेलोड में त्रुटि जानकारी वापस आनी चाहिए, या दोनों, आदि और फिर पेलोड में जानकारी कैसे जोड़ी जानी चाहिए। जिस विशिष्ट स्थिति का उपयोग किया जाता है वह प्रश्न के केवल एक विशिष्ट पहलू पर गौरवान्वित करता है।
मनची

584

अपने एपीआई के लिए सही HTTP त्रुटि कोड लेने के लिए एक महान संसाधन: http://www.codetinkerer.com/2015/12/04/choosing-an-http-status-code.html

लेख का एक अंश:

कहा से शुरुवात करे:

यहाँ छवि विवरण दर्ज करें

2xx / 3xx:

यहाँ छवि विवरण दर्ज करें

4xx:

यहाँ छवि विवरण दर्ज करें

5XX:

यहाँ छवि विवरण दर्ज करें


1
422 विशेष रूप से एक WebDAV एक्सटेंशन है। मुझे लगता है कि यहाँ नहीं होना चाहिए।
मारियो

@Mario यह रूब एपीआई पर रूबी में मुहावरेदार है यहां निर्दिष्ट शर्तों के जवाब में 422 की वापसी। अच्छा है कि पहले से ही निम्नलिखित दृष्टिकोण। आप 422 के उपयोग को किसके लिए बदलेंगे?
केल्सी हन्नान

नियमित रूप से पुराने 400
Andbdrew

धन्यवाद। इसका क्या अर्थ है "क्या आप इंटरनेट पर क्रोध कर रहे हैं?"
RoutesMaps.com


87

मुख्य विकल्प यह है कि आप HTTP स्थिति कोड को अपने REST API के भाग के रूप में मान सकते हैं या नहीं।

दोनों तरीके ठीक काम करते हैं। मैं मानता हूं कि, कड़ाई से बोलते हुए, REST के विचारों में से एक यह है कि आपको HTTP API कोड का उपयोग अपने एपीआई के एक भाग के रूप में करना चाहिए (200 या 201 सफल ऑपरेशन के लिए और 4xx या 5xx विभिन्न त्रुटि मामलों के आधार पर।) , कोई REST पुलिस नहीं हैं। आप जो चाहते है वो कर सकते हैं। मैंने बहुत अधिक गैर-गैर-मूल्यवान API देखे हैं जिन्हें "RESTful" कहा जाता है।

इस बिंदु पर (अगस्त, 2015) मैं अनुशंसा करता हूं कि आप अपने एपीआई के हिस्से के रूप में HTTP स्थिति कोड का उपयोग करें। अतीत की तुलना में चौखटे का उपयोग करते समय रिटर्न कोड देखना अब बहुत आसान हो गया है। विशेष रूप से, गैर-200 रिटर्न मामले और गैर-200 प्रतिक्रियाओं के शरीर को पहले की तुलना में देखना अब आसान है।

HTTP स्थिति कोड आपके एपीआई का हिस्सा है

  1. आपको सावधानीपूर्वक 4xx कोड चुनने की आवश्यकता होगी जो आपकी त्रुटि स्थितियों में फिट हों। आप पेलोड के रूप में एक शेष, xml, या सादा संदेश शामिल कर सकते हैं जिसमें एक उप-कोड और एक वर्णनात्मक टिप्पणी शामिल है।

  2. क्लाइंट को एक सॉफ्टवेयर फ्रेमवर्क का उपयोग करने की आवश्यकता होगी जो उन्हें HTTP-level स्थिति कोड में लाने में सक्षम बनाता है। आमतौर पर सक्षम, हमेशा सीधे-आगे नहीं।

  3. क्लाइंट को HTTP स्टेटस कोड्स के बीच अंतर करना होगा जो एक संचार त्रुटि और आपके स्वयं के स्टेटस कोड्स का संकेत देता है जो एप्लिकेशन-स्तर के मुद्दे को इंगित करता है।

HTTP स्थिति कोड आपके एपीआई का हिस्सा नहीं है

  1. यदि आपके ऐप ने अनुरोध प्राप्त किया है और तब जवाब दिया गया है तो HTTP स्थिति कोड हमेशा 200 होगा (सफलता और त्रुटि दोनों मामले)

  2. आपकी सभी प्रतिक्रियाओं में "लिफाफा" या "हेडर" जानकारी शामिल होनी चाहिए। आमतौर पर कुछ इस तरह:

    लिफाफा_वर: 1.0
    स्थिति: # किसी भी कोड का उपयोग करें जिसे आप पसंद करते हैं। सफलता के लिए एक कोड सुरक्षित रखें।
    संदेश: "ओके" # एक मानव स्ट्रिंग जो कोड को दर्शाता है। डिबगिंग के लिए उपयोगी है।
    डेटा: ... # प्रतिक्रिया का डेटा, यदि कोई हो।
  3. ग्राहकों के लिए यह तरीका आसान हो सकता है क्योंकि प्रतिक्रिया के लिए स्थिति हमेशा एक ही स्थान पर होती है (कोई उप-कोड आवश्यक नहीं), कोड की कोई सीमा नहीं, HTTP- स्तर की स्थिति-कोड लाने की कोई आवश्यकता नहीं है।

यहाँ एक समान विचार के साथ एक पोस्ट है: http://yuiblog.com/blog/2008/10/15/datatable-260-part-one//

मुख्य मुद्दे:

  1. संस्करण संख्याओं को शामिल करना सुनिश्चित करें ताकि आप बाद में जरूरत पड़ने पर एपीआई के शब्दार्थ को बदल सकें।

  2. दस्तावेज़ ...


8
Ty। विकल्प 2 बाकी कपड़ों में SOAP की तरह लगता है ...
Remus Rusanu

138
नहीं, एक 200 के माध्यम से सब कुछ सुरंग करना बिल्कुल भी आराम नहीं है। यह बिचौलियों को एक ऑपरेशन के परिणाम को समझने से रोकता है, जो किसी भी प्रकार के कैशिंग को मार देगा, यह ऑपरेशन के शब्दार्थ को छुपाता है, और यह संदेश की सामग्री को समझने में त्रुटि को संसाधित करने के लिए रोकता है, स्व-निहित संदेश बाधा को दूर करता है।
सीरियलबेल

13
200 के साथ त्रुटि विवरण लौटना शायद Restful नहीं है, लेकिन फिर भी यह एक उपयोगी उत्तर है (यदि आप "दोनों तरीकों को" टिप्पणी पर ध्यान न दें) की अनदेखी करते हैं ... बड़ा बिंदु यह हो सकता है कि RESTful API सबसे अच्छा विकल्प नहीं हो सकता है ओ.पी.
एमबी।

3
एक सामान्य समझ है कि आप HTTP प्रोटोकॉल के साथ जो चाहें कर सकते हैं और अभी भी "RESTy" हो सकता है, यह गलत है। जो लिखा है उसके लिए प्रोटोकॉल का उपयोग करें, यह REST के मुख्य विचारों में से एक है। इसलिए स्टेटस कोड आपके प्रोटोकॉल का हिस्सा होना चाहिए।
एरियल एम।

स्टेटस कोड्स का मतलब विविध प्रोग्रामिंग लैंग्वेज, फ्रेमवर्क और एप्रोच के बीच एक सामान्य भाषा प्रदान करना है। स्थिति कोड का अर्थ सार्वभौमिक के करीब है: आपका कस्टम निकाय - जो आपके सिंटैक्स को कस्टम सिंटैक्स के माध्यम से स्वाभाविक रूप से अधिक जटिलता जोड़ता है, जिसे आपके उपभोक्ताओं को सीखना चाहिए - नहीं है।
केल्सी हन्नान

40

याद रखें कि HTTP / 1.1 RFC में परिभाषित लोगों की तुलना में अधिक स्थिति कोड हैं, IANA रजिस्ट्री http://www.iana.org/assignments/http-status-codes पर है । मामले के लिए आपने स्थिति कोड 507 सही बताया है।


3
हम्म, जबकि एक नज़र में "507 अपर्याप्त भंडारण" ऐसा लगता है कि यह उचित हो सकता है, मैं इसे इस्तेमाल करने की आदत डालूंगा क्योंकि यह एक (काफी विशिष्ट) WebDAV एक्सटेंशन के रूप में अभिप्रेत है और सामान्य नहीं "अरे आप अंतरिक्ष से बाहर हैं" अपवाद। फिर भी, मुझे लगता है कि आप इसका इस्तेमाल कर सकते हैं।
अधिकतम

1
नहीं, यह सब WebDAV- विशिष्ट नहीं है। HTTP स्थिति कोड के लिए रजिस्ट्री होने का एक कारण है।
जूलियन रेसके ने

25
मैं 507इस उद्देश्य से सहमत नहीं हूँ । मेरी व्याख्या 507यह है कि सर्वर अंतरिक्ष से बाहर है, ऐसा नहीं है कि खाता अंतरिक्ष से बाहर है।
पैट्रिक

11
मैं पैट्रिक से सहमत हूं। 5xxत्रुटि सर्वर के साथ करने के लिए त्रुटियाँ हैं।
सीन

10
४१: "मैं एक चायदानी हूँ" जिसका अर्थ है कि भंडारण स्थान बहुत कम है (जैसे कि एक चायदानी छोटा है) बड़ा होने के बजाय और इस प्रकार अंतरिक्ष से बाहर है।
स्टीव कोंवेस

22

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

याद रखें कि 5xx त्रुटियां सर्वर-साइड हैं, उर्फ ​​क्लाइंट अनुरोध पारित करने के लिए अपने अनुरोध में कुछ भी नहीं बदल सकता है। यदि क्लाइंट का कोटा पार हो गया है, तो यह निश्चित रूप से सर्वर त्रुटि नहीं है, इसलिए 5xx से बचा जाना चाहिए।


मैं असहमत होता। कोटा से अधिक सर्वर त्रुटि (5xx) होगी क्योंकि: ग्राहक का अनुरोध वैध है और यदि कोटा के तहत नियम लागू होता है, तो 400ccies से बाहर कर दिया जाएगा।
mikek3332002

3
लेकिन सर्वर ने कुछ भी गलत नहीं किया है।
चार्ली श्लिसेर

20

त्रुटियों के दो प्रकार हैं। एप्लिकेशन त्रुटियां और HTTP त्रुटियां। HTTP त्रुटियां सिर्फ आपके AJAX हैंडलर को यह बताने के लिए हैं कि चीजें ठीक हो गईं और इसका उपयोग किसी और चीज के लिए नहीं किया जाना चाहिए।

5xx सर्वर त्रुटि

500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
506 Variant Also Negotiates (RFC 2295 )
507 Insufficient Storage (WebDAV) (RFC 4918 )
509 Bandwidth Limit Exceeded (Apache bw/limited extension)
510 Not Extended (RFC 2774 )

2xx सफलता

200 OK
201 Created
202 Accepted
203 Non-Authoritative Information (since HTTP/1.1)
204 No Content
205 Reset Content
206 Partial Content
207 Multi-Status (WebDAV)

हालाँकि, आप अपनी एप्लिकेशन त्रुटियों को कैसे डिज़ाइन करते हैं, यह वास्तव में आप पर निर्भर है। स्टैक ओवरफ़्लो उदाहरण के लिए के साथ एक वस्तु भेजता है response, dataऔर messageगुण। मेरा मानना ​​है कि प्रतिक्रिया सफल होती है trueया falseइंगित करने के लिए कि ऑपरेशन सफल था (आमतौर पर लिखने के लिए ऑपरेशन)। डेटा (आमतौर पर पढ़ने के संचालन के लिए) पेलोड शामिल है और संदेश (जैसे त्रुटि संदेश जब के रूप में किसी भी अतिरिक्त मेटाडेटा या उपयोगी संदेश शामिल responseहै false)।


1
क्लाइंट एप्लिकेशन में किसी समस्या को इंगित करने के लिए 400 भी सहायक है।
dolmen

19

मुझे पता है कि यह पार्टी के लिए बहुत देर से है, लेकिन अब, वर्ष 2013 में, हमारे पास एक आम वितरित (RESTful) फैशन में त्रुटि से निपटने के लिए कुछ मीडिया प्रकार हैं। "Vnd.error", एप्लिकेशन / vnd.error + json ( https://github.com/blongden/vnd.error ) और "HTTP APIs के लिए समस्या विवरण", एप्लिकेशन / समस्या + json ( https: // उपकरण) देखें। ietf.org/html/draft-nottingham-http-problem-05 )।


2
लिंक के लिए धन्यवाद। ड्राफ्ट-नॉटिंघम-http-प्रॉब्लम अब एक प्रस्तावित मानक है: datatracker.ietf.org/doc/rfc7807
seanf

9

माना। REST का मूल दर्शन वेब इन्फ्रास्ट्रक्चर का उपयोग करना है। HTTP स्टेटस कोड एक मैसेजिंग फ्रेमवर्क है जो पार्टियों को HTTP पेलोड को बढ़ाए बिना एक दूसरे के साथ संवाद करने की अनुमति देता है। वे पहले से ही स्थापित सार्वभौमिक कोड हैं जो प्रतिक्रिया की स्थिति को व्यक्त करते हैं, और इसलिए, वास्तव में Restful होने के लिए, अनुप्रयोगों को प्रतिक्रिया की स्थिति को संवाद करने के लिए इस ढांचे का उपयोग करना चाहिए।

HTTP 200 लिफ़ाफ़े में एक त्रुटि प्रतिक्रिया भेजना भ्रामक है, और क्लाइंट (एपीआई उपभोक्ता) को संदेश को पार्स करने के लिए मजबूर करता है, जो कि गैर-मानक या मालिकाना तरीके से संभव है। यह भी कुशल नहीं है - आप अपने ग्राहकों को "वास्तविक" प्रतिक्रिया स्थिति को समझने के लिए हर बार HTTP पेलोड को पार्स करने के लिए मजबूर करेंगे। यह प्रसंस्करण को बढ़ाता है, विलंबता जोड़ता है, और क्लाइंट के लिए गलतियां करने के लिए एक वातावरण बनाता है।


3
चाहे आपके पास एक सफल प्रतिक्रिया हो, या विफलता की प्रतिक्रिया हो, आप संभवतः प्रतिक्रिया को पार्स करने जा रहे हैं। यदि यह एक त्रुटि है, तो आप त्रुटि संदेश को बाहर निकालने के लिए इसे पार्स करना चाहते हैं। त्रुटि प्रतिक्रियाएं आम तौर पर छोटी और पार्स करने के लिए त्वरित होती हैं। मुझे नहीं लगता कि हमें पार्सिंग त्रुटि प्रतिक्रियाओं से बचने के लिए अनुकूलन करने की कोशिश करने के बारे में चिंतित होना चाहिए। क्या आप केवल त्रुटि प्रतिक्रिया को बिना पार्स किए फेंक देंगे? मेरी राय में अनजान।
एजिलेप्रो सेप

3
यदि आपको 200 ओके मिलते हैं, तो आप अपने व्यावसायिक नियमों के आधार पर इसे पार्स नहीं करना चुन सकते हैं। मुद्दा यह नहीं है कि हम इसे हर समय पार्स करते हैं या नहीं। बिंदु इरादा है - 200 ओके का इरादा क्या है? आप 200 ओके में लिपटे त्रुटि संदेश भेजकर इरादे को नुकसान पहुंचा रहे हैं।
किंग्ज

1
"200 ओके का इरादा क्या है?" - परिवहन परत की सफलता का संकेत। अनुरोध को सफलतापूर्वक प्राप्त किया गया है और उत्तर दिया गया है, HTTP के साथ कुछ भी नहीं करने के लिए केवल एक आवेदन विशिष्ट समस्या थी। +++ दूसरे तरीके से डालें: 404 REST दुनिया में भेजने का मतलब है कि कुछ नहीं मिला, हो सकता है कि URL सरल हो या संसाधित संसाधन हो या कुछ और नहीं मिला हो। संदेश पार्स किए बिना, आप नहीं कर सकते। IMHO REST केवल परतों को भ्रमित कर रहा है।
मेआर्टिनस

संघर्ष आदर्श है। यह आपको अपने तर्क की लाइन से निपटने के लिए एक सिंटैक्स प्रदान करता है, और आपको व्यावसायिक परत पर ध्यान केंद्रित करने के लिए मुक्त करता है। परिवहन पर सहमत बाद में स्थिति आ गई - यही कारण है कि उद्देश्य पहले स्थान पर था - REST का आविष्कार / HTTP के साथ एक साथ प्रस्तावित नहीं किया गया था - यह बाद में आया और बस स्टेट्स और उनके CHANGES का प्रतिनिधित्व करने के लिए मौजूदा बुनियादी ढांचे का उपयोग करने का निर्णय लिया गया।
किंग्ज


5

कृपया प्रोटोकॉल के शब्दार्थ से चिपके रहें। सफल प्रतिक्रियाओं के लिए 2xx का उपयोग करें और त्रुटि प्रतिक्रियाओं के लिए 4xx, 5xx - यह आपके व्यवसाय के अपवाद या अन्य हैं। किसी भी प्रतिक्रिया के लिए 2xx का उपयोग करने के लिए प्रोटोकॉल में इच्छित उपयोग का मामला था, उनके पास पहले स्थान पर अन्य स्थिति कोड नहीं होंगे।


3

5xx त्रुटियों के साथ ही आवेदन त्रुटियों के लिए मत भूलना।

इस मामले में 409 (संघर्ष) क्या है? यह मानता है कि उपयोगकर्ता संग्रहीत संसाधनों को हटाकर समस्या को ठीक कर सकता है।

अन्यथा 507 (पूरी तरह से मानक नहीं) भी काम कर सकते हैं। जब तक आप सामान्य रूप से त्रुटियों के लिए 200 का उपयोग नहीं करते मैं 200 का उपयोग नहीं करूंगा।


-1

यदि क्लाइंट कोटा से अधिक है तो यह सर्वर त्रुटि है, इस उदाहरण में 5xx से बचें।


2
जब वे सर्वर त्रुटियों के लिए 5xx श्रृंखला त्रुटियों से बचते हैं?
mikek3332002

6
'ग्राहक कोटा अधिक हो गया है' सर्वर त्रुटि imho नहीं है, यह एक ग्राहक प्रतिबंध है और 4xx से कम होना चाहिए।
MyGGaN
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.