asp.net web api - REST API design with async (polling) operations and errors that are found "later" -


इस संसाधन का प्रतिनिधित्व:

  अनुरोध / आईडी / संसाधन   

जो async संसाधन निर्माण का समर्थन करने के लिए किया जाता है (आप पहले एक अनुरोध सबमिट करते हैं, तब तक संसाधन के लिए मतदान करने के लिए id का उपयोग करें जब तक आप 200 ठीक नहीं मिलते), मूल अनुरोध की त्रुटियों को वापस करने के लिए एक अच्छा स्थिति कोड क्या होगा मतदान चरण के दौरान क्या पता लगाया?

लंबे विवरण:

इसलिए मुख्य समस्या यह है कि मूल अनुरोध को सबमिट करने से कुछ अमान्य मापदंड हो सकते हैं, और लौट रहे लोगों के लिए 400 बुरा अनुरोध ठीक है। समस्या यह है कि इनमें से कुछ पैरामीटर केवल बाद में वैध हो सकते हैं, जबकि मतदान चरण (जबकि वास्तविक संसाधन बनाया जा रहा है) के दौरान, इसलिए हमें इस जानकारी को उपयोगकर्ता को प्रसारित करने की आवश्यकता है। हम इस प्रक्रिया के दौरान वर्तमान में त्रुटियों के लिए क्या लौटते हैं 500 आंतरिकसर्वर त्रुटि है, लेकिन अगर हमें लगता है कि कुछ प्रारंभिक अनुरोध में गलत था तो यह शायद ही एक आंतरिक सर्वर त्रुटि है 400 बुरा अनुरोध वापस करना मन में आता है, लेकिन वास्तविकता में मतदान मत से ही कुछ भी गलत नहीं है (मेरे लिए बुरा अनुरोध कहता है कि कॉल आप अभी हैं)। = "पोस्ट-पाठ" आइटमप्रॉप = "टेक्स्ट">

मैं कहूंगा कि ऐसा नहीं करना चाहिए इसके बजाय, ऐसा कुछ करें:

  पोस्ट / अनुरोध {"id": 12, "स्थिति": "लंबित"} प्राप्त / अनुरोध / {आईडी} = 12 {"id": 12, "स्थिति": "त्रुटि", "कारण": "अमान्य पैरामीटर: 'बॉब' कोई संख्या नहीं है"} प्राप्त / अनुरोध / {आईडी} = 15 {"id": 15, "स्थिति": "पूर्ण", " संसाधन ":" / संसाधन / 5 "} प्राप्त / संसाधन / 5 {" id ": 5, ...}   

प्राप्त / अनुरोध वापस आ जाएगा < कोड> 200 ओके और संकेत मिलता है कि क्या कोई समस्या है या नहीं क्लाइंट अपने अनुरोध को "त्रुटि" या "संसाधन" (या फिर आप इसे संरचित करना चाहते हैं) की तलाश कर सकते हैं - मुझे संस्थाओं के बारे में अधिक जानकारी नहीं मिली, केवल यूआरआई)।

Comments

Popular posts from this blog

Java - Error: no suitable method found for add(int, java.lang.String) -

java - JPA TypedQuery: Parameter value element did not match expected type -

c++ - static template member variable has internal linkage but is not defined -