Подаци упита помоћу Web API-ја за портале
Можете да користите доступне Web API операције у услузи Power Pages. Web API операције састоје се од HTTP захтева и одговора. Овај чланак наводи примере операција, метода, URI-ја и JSON примере читања које можете користити у HTTP захтеву.
Предуслови
Верзија ваше веб-локације мора бити 9.4.1.x или новија.
Омогућите табелу и поље за Web API операције. Још информација: Поставке локације за Web API
Web API за портале приступа записима табеле и прати дозволе за табеле дате корисницима путем придружених веб-улога. Уверите се да сте конфигурисали одговарајуће дозволе за табелу. Још информација: Креирање веб-улога
Напомена
Када се позивате на Dataverse табеле које користе Web API портала, потребно је да користите 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 |
Преузми пословни контакт помоћу ID-а пословног контакта:
Операција | Метод | УРИ |
---|---|---|
Преузимање одређеног својства записа | ДОБИТИ | [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
. Ако нису наведена својства, биће враћена грешка.
Резултати филтера
Користите $ филтер опцију системског упита да бисте поставили критеријуме за које се враћају редови.
Стандардни оператори филтера
Web API подржава стандардне операторе OData филтера наведене у следећој табели:
Оператор | Опис | Пример |
---|---|---|
Упоређивање оператора | ||
eq | једнако | $ филтер = приход екв #пии_хиецгдјз |
ne | Није једнако | $ филтер = приход не #пии_хиецгдаз |
gt | Веће од | $ филтер = приход ГТ #пии_хиецгдбз |
ge | Веће од или једнако | $ филтер = приход ге #пии_хиецгдцз |
lt | Мање од | $ филтер = приход лт #пии_хиецгддз |
le | Мање од или једнако | $ филтер = приход ле #пии_хиецгдез |
Логички оператори | ||
и | Логичко „и“ | $ филтер = Приход ЛТ #пии_хиецгдфз и приход ГТ 2000 |
или | Логичко „или“ | $ филтер = садржи(име,'(узорак )') или садржи(име,'тест') |
not | Логичка негација | $ филтер = не садржи(име,'узорак') |
Оператори груписања | ||
( ) | Груписање првенства | (садржи(име,'узорак ') или садржи(име,'тест')) и приход ГТ 5000 |
Стандардне функције упита
Web API подржава ове стандардне OData функције упита ниске:
Функцију | Пример |
---|---|
садржи | $филтер=садржи(име,'(узорак)') |
завршава се са | $филтер=ендсwитх(име,'Инц.') |
startswith | $филтер=стартсwитх(име,'а') |
Dataverse функције упита
Web API подржава Dataverse функције упита за филтрирање резултата. Више информација потражите у чланку Референца Web 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 податке можете да агрегирате и групишете динамички, као што се види у следећим примерима:
Сценарија | Пример |
---|---|
Листа јединствених статуса у упиту | аццоунтс?$апплy=гроупбy((статусцоде)) |
Агрегатни збир процењене вредности | могућности ? $ апплy = агрегат(процењена вредност са сумом као укупан) |
Просечна величина погодбе на основу процењене вредности и статуса | могућности ? $ апплy = гроупби((статусцоде),агрегат(процењена вредност са просеком као просечна вредност) |
Збир процењене вредности на основу статуса | могућности ?$ апплy = гроупби ((статусцоде ),аггрегате (процењена вредност са сумом као укупан)) |
Укупан приход могућности за пословање по имену пословног контакта | могућности ?$ апплy = Гроупби ((парентаццоунтид /наме ),аггрегате (естиматедвалуе wитх сум ас тотал)) |
Имена примарних контаката за пословне контакте у 'WA' | аццоунтс ?$ апплy = филтер (address1 _статеорпровинце еq 'WА')/гроупбy((примарyцонтацтид/фуллнаме)) |
Датум и време последњег креираног записа | аццоунтс ?$ апплy = аггрегате (цреатедон wитх маx ас ластЦреате) |
Датум и време првог креираног записа | аццоунтс ?$ апплy = агрегат (цреатедон са мин као фирстЦреате) |
Преузимање броја редова
Користите опцију системског упита $count са вредношћу „тачно“ да бисте укључили пребројавање ентитета који одговарају критеријумима филтера до 5000.
Метод | УРИ |
---|---|
ДОБИТИ | [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
Поређење колона
Следећи пример приказује како се упоређују колоне помоћу Web 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 у својствима навигације да бисте контролисали податке повезаних ентитета.
Својство навигације повеане са проналажењем
Потребно је да користите Мицрософт.Динамицс.ЦРМ.ассоциатеднавигатионпропертy као атрибут претраге када користите опцију $ еxпанд упита.
Да бисте утврдили 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) |
Записи упита користећи ФетцхКсмл
Пронесите ФетцхКсмл упит као вредност низа кодирану УРЛ-ом у колекцију скупа ентитета користећи параметар упита ФетцхXмл.
На пример, да бисте преузели податке из скупа ентитета рачуна, саставите ФетцхКсмл упит који поставља параметар имена елемента ентитета на налог.
<fetch top='2'>
<entity name='account'>
<attribute name='name' />
</entity>
</fetch>
УРЛ кодирани стринг за претходни упит је:
%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)"
}
}
]
}
Следећи корак
Портали пишу, ажурирају и бришу операције коришћења Веб АПИ-ја