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 निषिद्ध | निम्न प्रकार की त्रुटियों के लिए इस प्रतिक्रिया की अपेक्षा करें:
|
क्लायंट त्रुटि |
401 अनधिकृत | निम्न प्रकार की त्रुटियों के लिए इस प्रतिक्रिया की अपेक्षा करें:
|
क्लायंट त्रुटि |
413 पेलोड बहुत बड़ा है | इस प्रतिक्रिया की अपेक्षा तब करें जब अनुरोध की लंबाई बहुत बड़ी हो. | क्लायंट त्रुटि |
400 BadRequest | इस प्रतिक्रिया की अपेक्षा तब करें, जब कोई तर्क अमान्य हो. InvalidAttribute |
क्लायंट त्रुटि |
404 नहीं मिला | जब संसाधन मौजूद न हो तो इस प्रतिक्रिया की अपेक्षा करें. Web API के लिए टेबल को प्रकट नहीं किया जाता है. |
क्लायंट त्रुटि |
405 विधि की अनुमति नहीं है | यह त्रुटि गलत विधि और संसाधन संयोजनों पर सामने आती है. उदाहरण के लिए, आप टेबलों के किसी कलेक्शन पर ‘हटाएं’ या ‘पैच करें’ का उपयोग नहीं कर सकते हैं. यह स्थिति निम्न प्रकार की त्रुटियों के लिए हो सकती है:
|
क्लायंट त्रुटि |
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 का उपयोग करते हुए पोर्टल्स रीड ऑपरेशन
नोट
क्या आप हमें अपनी दस्तावेज़ीकरण भाषा वरीयताओं के बारे में बता सकते हैं? एक छोटा सर्वेक्षण पूरा करें. (कृपया ध्यान दें कि यह सर्वेक्षण अंग्रेज़ी में है)
सर्वेक्षण में लगभग सात मिनट लगेंगे. कोई भी व्यक्तिगत डेटा एकत्र नहीं किया जाता है (गोपनीयता कथन).