Порталдардың Веб-API интерфейсі арқылы деректерді сұрау
Power Pages платформасында қолжетімді веб-API операцияларын пайдалануға болады. Веб-API операциялары HTTP сұраулары мен жауаптарынан тұрады. Бұл мақалада HTTP сұрауында қолдануға болатын үлгіні оқу операциялары, URI және JSON үлгісі берілген.
Алғышарттар
Веб-сайтыңыздың нұсқасы 9.4.1.х немесе одан кейінгі нұсқа болуы керек.
Веб-API әрекеттері үшін кесте мен өрісті қосыңыз. Қосымша ақпарат: Веб-API сайт параметрлері
Порталдарың веб‑API интерфейсі кесте жазбаларына қатынасады және пайдаланушыларға байланысты веб-рөлдер арқылы берілген кесте рұқсаттарын орындайды. Дұрыс кесте рұқсаттарын конфигурациялағаныңызға көз жеткізіңіз. Қосымша ақпарат: Веб-рөлдер жасау
Ескертпе
Порталдардың Веб-API интерфейсін пайдаланатын Dataverse кестелері үшін EntitySetName параметрін пайдалануыңыз қажет, мысалы, тіркелгі кестесіне қатынасу үшін код синтаксисі тіркелгілер ішіндегі EntitySetName параметрін пайдаланады.
Сұрау жазбалары
Келесі мысалда тіркелгі жазбалары сұралады:
Операция | Әдіс | URI |
---|---|---|
Кесте жазбаларын шығарып алу | АЛУ | [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 жүйелік сұрау опцияларын пайдаланыңыз:
Операция | Әдіс | URI |
---|---|---|
Алғашқы үш нысан жазбасын шығарып алу | АЛУ | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Мысалы: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Тіркелгіні тіркелгі ИД арқылы шығарып алыңыз:
Операция | Әдіс | URI |
---|---|---|
Жазба үшін арнайы сипатты шығарып алу | АЛУ | [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 мекенжайына қосатын жүйелік сұрау опцияларының әрқайсысы сұрау жолдарының синтаксисі арқылы қосылады. Біріншісі [ дан кейін қосылады ? ] және келесі сұрау опциялары [ арқылы бөлінеді & ]. Барлық сұрау опциялары келесі мысалда көрсетілгендей регистрді ескереді:
Әдіс | URI |
---|---|
АЛУ | [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 жүйелік сұрау опциясын пайдаланыңыз:
Әдіс | URI |
---|---|
АЛУ | [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 | Тең | $сүзгі = табыс эквивациясы 100000 |
ne | Тең емес | $сүзгі = 100000 жоқ |
gt | Келесіден үлкен | $сүзгі = табыс GT 100000 |
ge | Келесіден үлкен не оған тең | $сүзгі=табыс ге 100000 |
lt | Келесіден кіші | $сүзгі=түсім lt 100000 |
le | Келесіден кіші не оған тең | $сүзгі = 100000 кірісі |
Логикалық операторлар | ||
ЖӘНЕ | Логикалық және | $сүзгі=түсім lt 100000 және табыс GT 2000 |
немесе | Логикалық немесе | $сүзгі=құрамында(атауы,'(үлгі)') немесе құрамында(аты,'сынақ') |
not | Логикалық теріске шығару | $сүзгі=құрамында жоқ(аты,'үлгі') |
Топтастыру операторлары | ||
( ) | Артықшылықты топтастыру | (құрамында(атауы,'үлгі') немесе құрамында(аты,'сынақ')) және табыс 5000 гт |
Стандартты сұрау функциялары
Веб-API осы стандартты OData жол сұрау функцияларына қолдау көрсетеді:
Функция | Мысал |
---|---|
қамтиды | $сүзгі=құрамында(аты,'(үлгі)') |
деп аяқталады | $filter=endswith(name,'Inc.') |
келесімен басталады | $filter=startswith(аты,'a') |
Dataverse сұрау функциялары
Веб-API нәтижелерді сүзу үшін Dataverse сұрау функцияларын қолдайды. Қосымша ақпарат алу үшін Веб-API сұрау функциясының анықтамасы бөлімін қараңыз.
Реттеу нәтижелері
$orderby жүйелік сұрау опциясы арқылы элементтердің қайтарылатын ретін көрсетіңіз. Сәйкесінше өсу немесе кему ретін көрсету үшін asc немесе desc жұрнағын пайдаланыңыз. Егер жұрнақ қолданылмаса, әдепкі бойынша өсу реті болады. Келесі мысалда өсу және кему атауы бойынша реттелген тіркелгілердің атауы мен кіріс сипаттарын шығарып алу көрсетіледі.
Әдіс | URI |
---|---|
АЛУ | [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=aggregate(жалпы сомасы бар болжалды мән) |
Есептелген мән мен күйге негізделген мәміленің орташа мөлшері | мүмкіндіктер?$apply=топ бойынша((күй коды),жиынтық(орташа мән ретінде орташа есептелген мән) |
Күйге негізделген есептелген мән жиынтығы | мүмкіндіктер?$apply=топ бойынша((күй коды),жинақтау(жалпы сомасымен есептелген мән)) |
Тіркелгі атауы бойынша жалпы мүмкіндік табысы | мүмкіндіктер?$apply=топ бойынша((ата-аналық есептік жазба/атауы),жинақтау(жалпы сомасы бар болжалды мән)) |
"WA" ішіндегі тіркелгілер үшін негізгі контакт атаулары | тіркелгілер?$apply=сүзгі(адрес1_статеорпровинция эквивалент 'WA')/топ((негізгі контакті/толық аты)) |
Соңғы жасалған жазба күні мен уақыты | accounts?$apply=aggregate(максимум соңғы жасау ретінде жасалған) |
Бірінші жасалған жазба күні мен уақыты | тіркелгілер?$apply=aggregate(бірінші Жасалу ретінде минмен жасалған) |
Жолдар санын шығарып алу
Сүзгі критерийлеріне 5000-ға дейін сәйкес келетін нысандар санын қосу үшін шынайы мәні бар $count жүйелік сұрау опциясын пайдаланыңыз.
Әдіс | URI |
---|---|
АЛУ | [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 қолдануға болады.
Әдіс | URI |
---|---|
АЛУ | [Portal URI/_api/accounts/$count Мысалы: https://contoso.powerappsportals.com/_api/accounts/$count |
Үлгі жауап
3
Бағанды салыстыру
Келесі мысалда веб-API арқылы бағандарды салыстыру жолы көрсетіледі:
Әдіс | URI |
---|---|
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.
Әдіс | URI |
---|---|
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 шығарып алудамыз.
Әдіс | URI |
---|---|
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)"
}
}
]
}
Жиынтық мәнді навигация сипаттарын кеңейту арқылы қатысты кестелерді шығарып алу
Нысан жиындарына қатысты кестелерді шығарып алу үшін жиынтық мәнді навигация параметрлерін кеңейтсеңіз, деректер болса, тереңдіктің бір деңгейі ғана қайтарылады. Әйтпесе, жинақ бос массивді қайтарады.
Әдіс | URI |
---|---|
АЛУ | [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) |
Бір мәнді және жиынтық мәнді навигация сипаттарын кеңейту арқылы қатысты кестелерді шығарып алу
Келесі мысалда бір мәнді және жиынтық мәнді навигация сипаттары арқылы нысан жиындары үшін қатысты нысандарды қалай кеңейтуге болатыны көрсетіледі. Кодыңыздың синтаксисінде кесте қатынасының атауын көрсетуіңіз керек.
Әдіс | URI |
---|---|
АЛУ | [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 сұрауын FetchXml сұрау параметрін пайдаланып нысан жиынына URL кодталған жол мәні ретінде жіберіңіз.
Мысалы, есептік жазба нысандары жиынынан деректерді шығарып алу үшін тіркелгіге нысан элементінің атауы параметрін орнататын 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
Әдіс | URI |
---|---|
АЛУ | [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)"
}
}
]
}
Келесі қадам
Порталдар Web API көмегімен әрекеттерді жазады, жаңартады және жояды