इसके माध्यम से साझा किया गया


HTTP अनुरोध लिखें और पोर्टल्स वेब API के लिए त्रुटियों को संभालें

नोट

12 अक्टूबर 2022 से प्रभावी, Power Apps पोर्टल Power Pages है। अधिक जानकारी: Microsoft Power Pages अब आम तौर पर उपलब्ध है (ब्लॉग)
हम जल्द ही Power Apps पोर्टल दस्तावेज़ीकरण को Power Pages दस्तावेज़ीकरण के साथ माइग्रेट और विलय करेंगे।

वेब API के साथ अंत:क्रिया में आवश्यक हेडर के साथ HTTP अनुरोध बनाना और किसी भी त्रुटि सहित HTTP प्रतिक्रियाओं को संभालना शामिल है.

महत्वपूर्ण

  • इस फ़ीचर के काम करने के लिए आपका पोर्टल संस्करण 9.3.3.x या बाद का होना चाहिए.

वेब API URL और संस्करण करना

निम्न तालिका में प्रारूप का उपयोग करके वेब API URL का निर्माण करें.

भाग विवरण
प्रोटोकॉल https://
मूल URL <portal URL>
वेब API पथ _api
संसाधन तालिका का तार्किक नाम जिसका आप उपयोग करना चाहते हैं

उदाहरण के लिए, केस का संदर्भ देते समय इस प्रारूप का उपयोग करें:

https://contoso.powerappsportals.com/_api/case

वेब भूमिकाओं के संदर्भ में सभी वेब API संसाधन संबंधित पोर्टल तालिका अनुमतियों का अनुसरण करेंगे.

HTTP विधियाँ

HTTP अनुरोध विभिन्न प्रकार के तरीकों का उपयोग कर सकते हैं. हालाँकि, पोर्टल वेब API केवल निम्न तालिका में विधियों का समर्थन करता है:

विधि उपयोग
प्राप्त करें तालिकाओं से डेटा पुनर्प्राप्त करते समय उपयोग करें.
Post रिकॉर्ड बनाते समय उपयोग करें।
Patch टेबल अपडेट करते समय अथवा अपसर्ट संक्रियाएं करते समय उपयोग करें.
हटाएं रिकॉर्ड या रिकॉर्ड के अलग-अलग फ़ील्ड मानों को हटाते समय उपयोग करें।
Put रिकॉर्ड के अलग-अलग फ़ील्ड को अपडेट करने के लिए सीमित स्थितियों में उपयोग करें।

HTTP हेडर

वेब API केवल JSON का समर्थन करता है. प्रत्येक HTTP हेडर में शामिल होना चाहिए:

  •  application/json का स्वीकार हेडर मान, यहां तक कि जब कोई प्रतिक्रिया निकाय अपेक्षित नहीं है तब भी.
  • यदि अनुरोध में प्रतिक्रिया बॉडी में JSON डेटा शामिल है, तो आपको application/json के मान के साथ एक सामग्री-प्रकार हेदर भी शामिल करना होगा.

मौजूदा OData संस्करण 4.0 है, लेकिन भविष्य के संस्करण नई क्षमताओं के लिए अनुमति दे सकते हैं. निम्न सिंटैक्स का उपयोग यह सुनिश्चित करने के लिए करें कि भविष्य में आपके कोड पर लागू होने वाले OData संस्करण के बारे में कोई अस्पष्टता नहीं है:

सिंटैक्स

Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0

उदाहरण: CSRF टोकन के लिए रैपर AJAX फ़ंक्शन

    (function(webapi, $){
        function safeAjax(ajaxOptions) {
            var deferredAjax = $.Deferred();
    
            shell.getTokenDeferred().done(function (token) {
                // add headers for ajax
                if (!ajaxOptions.headers) {
                    $.extend(ajaxOptions, {
                        headers: {
                            "__RequestVerificationToken": token
                        }
                    }); 
                } else {
                    ajaxOptions.headers["__RequestVerificationToken"] = token;
                }
                $.ajax(ajaxOptions)
                    .done(function(data, textStatus, jqXHR) {
                        validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve);
                    }).fail(deferredAjax.reject); //ajax
            }).fail(function () {
                deferredAjax.rejectWith(this, arguments); // on token failure, pass the token ajax and args
            });
    
            return deferredAjax.promise();  
        }
        webapi.safeAjax = safeAjax;
})(window.webapi = window.webapi || {}, jQuery)

उदाहरण: तालिका डेटा पुनर्प्राप्त करें

    webapi.safeAjax({
                type: "GET",
                url: "/_api/contacts?$select=firstname,lastname",
                contentType: "application/json",
                success: function (res) {
                        console.log(res);
                }
    });

उदाहरण: टेबल डेटा बनाएं

    webapi.safeAjax({
        type: "POST",
        url: "/_api/accounts",
        contentType: "application/json",
        data: JSON.stringify({
            "name": "Sample Account"
        }),
        success: function (res, status, xhr) {
            console.log("entityID: "+ xhr.getResponseHeader("entityid"))
        }
    });

उदाहरण: टेबल डेटा अपडेट करें

        webapi.safeAjax({
        type: "PATCH",
        url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
        contentType: "application/json",
        data: JSON.stringify({
            "name": "Sample Account - Updated"
        }),
        success: function (res) {
            console.log(res);
        }
    });

उदाहरण: टेबल डेटा हटाएं

        webapi.safeAjax({
        type: "DELETE",
        url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
        contentType: "application/json",
        success: function (res) {
            console.log(res);
        }
    });

स्थिति कोड्स पहचानें

प्रत्येक HTTP अनुरोध प्रतिक्रिया में एक स्थिति कोड शामिल होता है. पोर्टल्स वेब API द्वारा लौटाए गए स्थिति कोड्स में निम्नलिखित शामिल हैं:

कोड विवरण Type
200 ठीक इस प्रतिक्रिया की अपेक्षा तब करें जब आपका ऑपरेशन प्रतिक्रिया बॉडी में डेटा लौटाएगा. सफल
204 कोई सामग्री नहीं इस प्रतिक्रिया की अपेक्षा तब करें जब आपका ऑपरेशन सफल हो जाए, लेकिन प्रतिक्रिया बॉडी में डेटा वापस न करें. सफल
403 निषिद्ध निम्न प्रकार की त्रुटियों के लिए इस प्रतिक्रिया की अपेक्षा करें:
  • AccessDenied
  • AttributePermissionIsMissing
  • TablePermissionWriteIsMissingDuringUpdate
  • TablePermissionCreateIsMissing
  • TablePermissionDeleteIsMissing
  • TablePermissionAppendIsMissngDuringAssociationChange
  • TablePermissionAppendToIsMissingDuringAssociateChange
क्लायंट त्रुटि
401 अनधिकृत निम्न प्रकार की त्रुटियों के लिए इस प्रतिक्रिया की अपेक्षा करें:
  • MissingPortalRequestVerificationToken
  • MissingPortalSessionCookie
क्लायंट त्रुटि
413 पेलोड बहुत बड़ा है इस प्रतिक्रिया की अपेक्षा तब करें जब अनुरोध की लंबाई बहुत बड़ी हो. क्लायंट त्रुटि
400 BadRequest इस प्रतिक्रिया की अपेक्षा तब करें, जब कोई तर्क अमान्य हो.
InvalidAttribute
क्लायंट त्रुटि
404 नहीं मिला जब संसाधन मौजूद न हो तो इस प्रतिक्रिया की अपेक्षा करें.
Web API के लिए टेबल को प्रकट नहीं किया जाता है.
क्लायंट त्रुटि
405 विधि की अनुमति नहीं है यह त्रुटि गलत विधि और संसाधन संयोजनों पर सामने आती है. उदाहरण के लिए, आप टेबलों के किसी कलेक्शन पर ‘हटाएं’ या ‘पैच करें’ का उपयोग नहीं कर सकते हैं. यह स्थिति निम्न प्रकार की त्रुटियों के लिए हो सकती है:
  • InvalidOperation
  • NotSupported
क्लायंट त्रुटि
501 कार्यान्वित नहीं इस प्रतिक्रिया की अपेक्षा तब करें, जब कुछ अनुरोधित कार्य कार्यान्वित न हुआ हो. सर्वर त्रुटि
503 सेवा उपलब्ध नहीं इस प्रतिक्रिया की अपेक्षा तब करें, जब वेब API सेवा उपलब्ध न हो. सर्वर त्रुटि

प्रतिक्रिया से त्रुटियों की व्याख्या करें

निम्नलिखित उदाहरण HTTP प्रतिक्रिया देखें जिसमें अब भी आंतरिक त्रुटि है:

{
  "error":{
    "code": "This code is not related to the http status code and is frequently empty",
    "message": "A message describing the error",
    "cdscode": "Dataverse error code",
    "innererror": {
        "code": "800xxxx",
        "message": "A message describing the error. This is frequently the same as the outer message.."
      }
    }
  }

त्रुटि कोड

सभी नियंत्रित परिदृश्यों के लिए त्रुटि कोड्स को हेक्साडेसिमल प्रारूप में प्रदर्शित किया जाता है. निम्न तालिका प्रत्येक त्रुटि कोड को उसके संबंधित नाम और संदेश के साथ सूचीबद्ध करती है.

त्रुटि कोड त्रुटि का नाम त्रुटि संदेश
900400FF NoAttributesForTableCreate तालिका बनाएँ कार्रवाई के लिए कोई एट्रिब्यूट नहीं है.
90040100 InvalidAttribute तालिका {1} के लिए एट्रिब्यूट {0} नहीं मिला.
90040101 AttributePermissionIsMissing तालिका {1} में एट्रिब्यूट {0} वेब API के लिए सक्षम नहीं है.
90040102 TablePermissionWriteIsMissingDuringUpdate आपको {0} निकाय अद्यतन की अनुमति नहीं है.
90040103 TablePermissionCreateIsMissing आपको {0} निकाय बनाने की अनुमति नहीं है.
90040104 TablePermissionDeleteIsMissing आपके पास {0} निकाय को हटाने की अनुमति नहीं है.
90040105 TablePermissionAppendIsMissngDuringAssociationChange आपको टेबल {0} को {1} के साथ संबद्ध अथवा असंबद्ध करने की अनुमति नहीं है.
90040106 TablePermissionAppendToIsMissingDuringAssociationChange आपको टेबल {1} को {0} से संबद्ध अथवा असंबद्ध करने की अनुमति नहीं है
90040107 HttpAntiForgeryException एंटी-फ़ोरजरी कुकी टोकन और प्रपत्र फ़ील्ड टोकन मेल नहीं खा रहे हैं.
90040109 MissingPortalSessionCookie क्षेपण विधि में एक अमान्य सत्र टोकन डाला गया था.
9004010C ResourceDoesNotExists '{0}' अनुभाग के लिए संसाधन नहीं मिला.
9004010D CDSError CDS त्रुटि हुई.

HTTP स्टेटस कोड 500 के साथ बिना संभाले त्रुटि के लिए प्रतिक्रिया, "अनुरोध को संसाधित करते समय एक अप्रत्याशित त्रुटि हुई" वापस आएगी.

भी देखें

पोर्टल वेब API अवलोकन
पोर्टल वेब API का उपयोग करके संचालन लिखते हैं, अपडेट करते हैं और हटाते हैं
वेब API का उपयोग करते हुए पोर्टल्स रीड ऑपरेशन

नोट

क्या आप हमें अपनी दस्तावेज़ीकरण भाषा वरीयताओं के बारे में बता सकते हैं? एक छोटा सर्वेक्षण पूरा करें. (कृपया ध्यान दें कि यह सर्वेक्षण अंग्रेज़ी में है)

सर्वेक्षण में लगभग सात मिनट लगेंगे. कोई भी व्यक्तिगत डेटा एकत्र नहीं किया जाता है (गोपनीयता कथन).