पोर्टल्स वेब API का उपयोग कर क्वेरी डेटा
आप Power Pages में उपलब्ध वेब API ऑपरेशन का उपयोग कर सकते हैं. वेब API संचालन में HTTP अनुरोध और प्रतिक्रियाएँ होती हैं. यह आलेख नमूना रीड ऑपरेशन, विधियों, URI और नमूना JSON दिखाता है जिसका आप HTTP अनुरोध में उपयोग कर सकते हैं.
पूर्वावश्यकताएँ
आपका वेबसाइट संस्करण 9.4.1.x या उच्चतर होना चाहिए.
वेब API संचालन के लिए तालिका और फ़ील्ड सक्षम करें. अधिक जानकारी: वेब API के लिए साइट सेटिंग्स
पोर्टल्स Web API तालिका रिकॉर्ड को एक्सेस करता है और संबद्ध वेब भूमिकाओं के माध्यम से उपयोगकर्ताओं को दी गईं तालिका अनुमतियों का अनुसरण करता है. सुनिश्चित करें कि आप सही तालिका अनुमतियों को कॉन्फ़िगर करते हैं. अधिक जानकारी: वेब भूमिकाएँ बनाएँ
नोट
अपने कोड में पोर्टल्स वेब API का उपयोग करते हुए Dataverse तालिकाओं का संदर्भ देते समय, आपको EntitySetName का उपयोग करने की आवश्यकता होती है, उदाहरण के लिए खाता तालिका तक पहुँचने के लिए, कोड सिंटैक्स खाते के EntitySetName का उपयोग करेगा.
क्वेरी रिकॉर्ड
निम्न उदाहरण खाता रिकॉर्ड को सूचीबद्ध करता है:
संचालन | तरीका | यूआरआई |
---|---|---|
तालिका रिकॉर्ड पुनर्प्राप्त करें | पाना | [Portal URI]/_api/accounts उदाहरण: https://contoso.powerappsportals.com/_api/accounts |
नमूना प्रत्युत्तर
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
पहले तीन खातों के लिए नाम गुण वापस करने के लिए $select और $top सिस्टम क्वेरी विकल्पों का उपयोग करें:
संचालन | तरीका | यूआरआई |
---|---|---|
पहले तीन निकाय रिकॉर्ड पुनर्प्राप्त करें | पाना | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 उदाहरण: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
खाता आईडी का उपयोग करके खाता पुनर्प्राप्त करें:
संचालन | तरीका | यूआरआई |
---|---|---|
रिकॉर्ड के लिए विशिष्ट गुण पुनर्प्राप्त करें | पाना | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name उदाहरण: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
नमूना प्रत्युत्तर
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
सिस्टम क्वेरी विकल्प लागू करें
निकाय सेट के URL में आपके द्वारा जोड़े जाने वाले प्रत्येक सिस्टम क्वेरी विकल्प को क्वेरी स्ट्रिंग्स के सिंटैक्स का उपयोग करके जोड़ा जाता है. पहला [ के बाद जोड़ा गया है ? ] और निम्नलिखित क्वेरी विकल्पों को [ का उपयोग करके अलग किया गया है और ]. सभी क्वेरी विकल्प केस-संवेदी होते हैं जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:
तरीका | यूआरआई |
---|---|
पाना | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 उदाहरण: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
विशिष्ट गुणों का अनुरोध करें
निम्नलिखित उदाहरण में दिखाए गए अनुसार लौटाए गए गुणों को सीमित करने के लिए $select सिस्टम क्वेरी विकल्पों का उपयोग करें:
तरीका | यूआरआई |
---|---|
पाना | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 उदाहरण: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
महत्त्वपूर्ण
यह प्रदर्शन के लिए सर्वोत्तम अभ्यास है. यदि गुण निर्दिष्ट नहीं हैं और आपने Webapi/<table name>/fields
साइट सेटिंग मान को *
पर कॉन्फ़िगर किया है, तो $select
का उपयोग करके सभी गुणों को वापस कर दिया जाएगा. यदि कोई गुण निर्दिष्ट नहीं है, तो एक त्रुटि लौटा दी जाएगी.
परिणाम फ़िल्टर करें
उपयोग $फ़िल्टर सिस्टम क्वेरी विकल्प का उपयोग यह निर्धारित करने के लिए किया जाता है कि कौन सी पंक्तियाँ लौटाई जाएँ।
मानक फ़िल्टर ऑपरेटर्स
वेब API निम्न तालिका में सूचीबद्ध मानक OData फ़िल्टर ऑपरेटरों का समर्थन करता है:
ऑपरेटर | वर्णन | उदाहरण |
---|---|---|
तुलना ऑपरेटर | ||
eq | बराबर | $filter=राजस्व समीकरण 100000 |
ne | बराबर नहीं | $filter=राजस्व ne 100000 |
gt | इससे अधिक | $filter=राजस्व gt 100000 |
ge | इससे बड़ा या इसके बराबर | $filter=राजस्व जीई 100000 |
lt | इससे कम | $filter=राजस्व lt 100000 |
le | इससे कम या इसके बराबर | $फ़िल्टर=राजस्व ले 100000 |
लॉजिकल ऑपरेटर्स | ||
AND | तार्किक और | $filter=राजस्व lt 100000 और राजस्व gt 2000 |
or | तार्किक या | $filter=contains(name,'(sample)') या contains(name,'test') |
नहीं | तार्किक निषेध | $ फ़िल्टर = इसमें नाम, 'नमूना' शामिल नहीं है |
समूहीकरण ऑपरेटर | ||
( ) | वरीयता समूहीकरण | (इसमें (नाम, 'नमूना') या इसमें (नाम, 'परीक्षण') शामिल है) और राजस्व gt 5000 |
मानक क्वेरी फ़ंक्शन
वेब API इन मानक OData स्ट्रिंग क्वेरी फ़ंक्शंस का समर्थन करता है:
समारोह | उदाहरण |
---|---|
शामिल है | $ फ़िल्टर = इसमें नाम, '(नमूना)' शामिल है |
endswith | $ फ़िल्टर = endswith (नाम, 'इंक.') |
इससे प्रारंभ होता है | $ फ़िल्टर = startswith(नाम, 'a') |
Dataverse क्वेरी फ़ंक्शन
वेब API परिणामों को फ़िल्टर करने के लिए Dataverse क्वेरी फ़ंक्शन का समर्थन करता है. अधिक जानकारी के लिए, वेब API क्वेरी फ़ंक्शन संदर्भ देखें.
परिणाम क्रमित करें
उस क्रम को निर्दिष्ट करें जिसमें $orderby सिस्टम क्वेरी विकल्प का उपयोग करके आइटम वापस किया जाता है. क्रमशः आरोही या अवरोही क्रम निर्दिष्ट करने के लिए asc या desc प्रत्यय का उपयोग करें. यदि प्रत्यय लागू नहीं होता है, तो डिफ़ॉल्ट आरोही होता है. निम्नलिखित उदाहरण से पता चलता है कि आरोही आय और अवरोही नाम के आधार पर खातों के नाम और आय गुणों को पुनः प्राप्त करना.
तरीका | यूआरआई |
---|---|
पाना | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 उदाहरण: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
एकीकृत और समूहीकरण परिणाम
$apply, का उपयोग करके, आप अपने डेटा को गतिशील रूप से एकत्रित और समूहित कर सकते हैं जैसा कि निम्नलिखित उदाहरणों में देखा गया है:
परिदृश्यों | उदाहरण |
---|---|
क्वेरी में अद्वितीय स्थितियों की सूची | खाते?$apply=groupby((स्थिति कोड)) |
अनुमानित मान का एकीकृत योग | अवसर?$apply=कुल(अनुमानित मूल्य कुल योग के साथ) |
अनुमानित मूल्य और स्थिति के आधार पर सौदे का औसत आकार | अवसर?$apply=groupby((स्थिति कोड),समुच्चय(अनुमानित मूल्य औसत के रूप में औसत मूल्य के साथ) |
स्थिति के आधार पर अनुमानित मूल्य का योग | अवसर?$apply=groupby((स्थिति कोड),समुच्चय(अनुमानित मूल्य कुल योग के साथ)) |
खाते के नाम से कुल अवसर आय | अवसर?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total)) |
'WA' में खातों के लिए प्राथमिक संपर्क नाम | खाते?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
पिछली बार बनाए गए रिकॉर्ड की तिथि और समय | खाते?$apply=aggregate(createdon with max as lastCreate) |
पहली बार रिकॉर्ड बनाए जाने की तिथि और समय | खाते?$apply=aggregate(createdon with min as firstCreate) |
पंक्तियों की संख्या प्राप्त करें
5,000 तक के फ़िल्टर मानदंड से मेल खाने वाली इकाइयों की संख्या को शामिल करने के लिए ट्रू मान के साथ $count सिस्टम क्वेरी विकल्प का उपयोग करें.
तरीका | यूआरआई |
---|---|
पाना | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true उदाहरण: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
नमूना प्रत्युत्तर
{
"@odata.count": 10,
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
यदि आप गिनती के अलावा कोई डेटा वापस नहीं करना चाहते हैं, तो आप किसी भी संग्रह के लिए सिर्फ मूल्य प्राप्त करने के लिए $count लागू कर सकते हैं.
तरीका | यूआरआई |
---|---|
पाना | [Portal URI/_api/accounts/$count उदाहरण: https://contoso.powerappsportals.com/_api/accounts/$count |
नमूना प्रत्युत्तर
3
कॉलम तुलना
निम्न उदाहरण दिखाता है कि वेब API का उपयोग करके कॉलम की तुलना कैसे करें:
तरीका | यूआरआई |
---|---|
GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname उदाहरण: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
क्वेरी के साथ संबंधित तालिका रिकॉर्ड पुनर्प्राप्त करें
यह नियंत्रित करने के लिए कि संबंधित निकायों से कौन सा डेटा लौटाया जाता है, $expand नेविगेशन गुणों में सिस्टम क्वेरी विकल्प का उपयोग करें.
संबद्ध नेविगेशन गुण का लुकअप
आपको इसका उपयोग करने की आवश्यकता है Microsoft.Dynamics.CRM.associatednavigationproperty लुकअप विशेषता के रूप में उपयोग करते समय $विस्तार क्वेरी विकल्प.
किसी गुण का Microsoft.Dynamics.CRM.associatednavigationproperty निर्धारित करने के लिए, आप निम्न नामकरण पद्धति का उपयोग करके कॉलम के लिए निम्न http GET अनुरोध कर सकते हैं: _name_value.
निम्नलिखित उदाहरण में, हम निम्न अनुरोध में नाम स्वरूपित करके primarycontactid कॉलम नाम निर्दिष्ट करके खाता तालिका के प्राथमिक संपर्क के संबद्ध नेविगेशन गुण का निर्धारण कर सकते हैं: _primarycontactid_value.
तरीका | यूआरआई |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value उदाहरण https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
नमूना प्रत्युत्तर
{
"value": [
{
"@odata.etag": "W/\"2465216\"",
"_primarycontactid_value@OData.Community.Display.V1.FormattedValue": "Yvonne McKay (sample)",
"_primarycontactid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "primarycontactid",
"_primarycontactid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "contact",
"_primarycontactid_value": "417319b5-cd18-ed11-b83c-000d3af4d812",
"accountid": "2d7319b5-cd18-ed11-b83c-000d3af4d812"
}
]
}
हम प्रतिक्रिया से देखते हैं कि संबंधित नेविगेशन गुण primarycontactid है. तालिका कैसे बनाई गई थी इसके आधार पर, संबद्ध नेविगेशन गुण या तो लुकअप कॉलम का तार्किक नाम या स्कीमा नाम हो सकता है.
अधिक जानकारी के लिए, लुकअप गुणों के बारे में डेटा पुनर्प्राप्त करें देखें.
एकल-मान वाले नेविगेशन गुणों का विस्तार करके संबंधित तालिका रिकॉर्ड पुनर्प्राप्त करें
निम्न उदाहरण दिखाता है कि सभी खाता रिकॉर्ड के लिए संपर्क कैसे प्राप्त किया जाए. संबंधित संपर्क रिकॉर्ड के लिए, हम केवल contactid और fullname को पुनः प्राप्त कर रहे हैं.
तरीका | यूआरआई |
---|---|
GET | [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) उदाहरण: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
नमूना प्रत्युत्तर
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e6e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Yvonne McKay (sample)"
}
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e8e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Susanna Stubberod (sample)"
}
}
]
}
संग्रह-मान वाले नेविगेशन गुणों का विस्तार करके संबंधित तालिका पुनर्प्राप्त करें
यदि आप निकाय सेट के लिए संबंधित तालिकाओं को पुनः प्राप्त करने के लिए संग्रह-मान वाले नेविगेशन पैरामीटर पर विस्तार करते हैं, तो डेटा होने पर केवल एक स्तर की गहराई लौटाई जाती है. अन्यथा, संग्रह एक रिक्त सरणी लौटाता है।
तरीका | यूआरआई |
---|---|
पाना | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) उदाहरण: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
एकल और संग्रह-मान वाले, दोनों नेविगेशन गुणों का विस्तार करके संबंधित तालिका पुनर्प्राप्त करें
निम्न उदाहरण दर्शाता है कि आप एकल और संग्रह-मूल्यवान नेविगेशन गुणों दोनों का उपयोग करके निकाय सेट के लिए संबंधित निकायों का विस्तार कैसे कर सकते हैं. आपको अपने कोड के सिंटैक्स में तालिका संबंध नाम निर्दिष्ट करना होगा।
तरीका | यूआरआई |
---|---|
पाना | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) उदाहरण: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
FetchXml का उपयोग करके रिकॉर्ड क्वेरी करें
FetchXml क्वेरी पैरामीटर का उपयोग करके इकाई सेट संग्रह में URL-एन्कोडेड स्ट्रिंग मान के रूप में FetchXml क्वेरी पास करें।
उदाहरण के लिए, खाता इकाई सेट से डेटा पुनर्प्राप्त करने के लिए, खाते में इकाई तत्व नाम पैरामीटर सेट करके एक FetchXml क्वेरी बनाएं।
<fetch top='2'>
<entity name='account'>
<attribute name='name' />
</entity>
</fetch>
पिछली क्वेरी के लिए URL-एन्कोडेड स्ट्रिंग है:
%3Cfetch%20top%3D%275%27%3E%0D%0A%3Centity%20name%3D%27account%27%3E%0D%0A%3Cattribute%20name%3D%27name%27%2F%3E%0D%0A%3C%2Fentity%3E%0D%0A%3C%2Ffetch%3E
तरीका | यूआरआई |
---|---|
पाना | [Portal URI]/_api/accounts?fetchxml उदाहरण: https://contoso.powerappsportals.com/_api/accounts?fetchXml=%3Cfetch%20top%3D%275%27%3E%0D%0A%3Centity%20name%3D%27account%27%3E%0D%0A%3Cattribute%20name%3D%27name%27%2F%3E%0D%0A%3C%2Fentity%3E%0D%0A%3C%2Ffetch%3E |
नमूना प्रत्युत्तर
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e6e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Yvonne McKay (sample)"
}
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e8e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Susanna Stubberod (sample)"
}
}
]
}
अगला कदम
पोर्टल वेब API का उपयोग करके संचालन लिखते हैं, अपडेट करते हैं और हटाते हैं