Делите путем


Подаци упита помоћу Web API-ја за портале

Напомена

Од 12. октобра 2022. Power Apps портали постају Power Pages. Више информација: Услуга Microsoft Power Pages је сада општедоступна (блог)
Ускоро ћемо мигрирати и објединити документацију о Power Apps порталима са документацијом о услузи Power Pages.

Можете обављати доступне Web API операције у порталима. Web API операције састоје се од HTTP захтева и одговора. Овај чланак наводи примере операција, метода, URI-ја и JSON примере читања које можете користити у HTTP захтеву.

Предуслови

  • Верзија вашег портала мора бити 9.4.1.x или виша.

  • Омогућите табелу и поље за Web API операције. Још информација: Поставке локације за Web API

  • Web API за портале приступа записима табеле и прати дозволе за табеле дате корисницима путем придружених веб-улога. Уверите се да сте конфигурисали одговарајуће дозволе за табелу. Још информација: Креирање веб-улога

Напомена

Када се позивате на Dataverse табеле које користе Web API портала, потребно је да користите EntitySetName, на пример, за приступ табели пословни контакт, синтакса кода ће користити EntitySetName пословни контакт.

Записи упита

Следећи пример поставља упите записима пословног контакта:

Операција Метод URI
Преузимање записа табеле GET [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
Преузми прва три записа ентитета GET [Portal URI]/_api/accounts?$select=name,revenue&$top=3

Пример:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

Преузми пословни контакт помоћу ID-а пословног контакта:

Операција Метод URI
Преузимање одређеног својства записа GET [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
GET [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

Својства специфична за захтев

Користите опцију  $ селецт  да бисте ограничили враћена својства као што је приказано у следећем примеру:

Метод URI
GET [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 Једнако $filter=revenue eq 100000
ne Није једнако $filter=revenue ne 100000
gt Веће од $filter=revenue gt 100000
ge Веће од или једнако $filter=revenue ge 100000
lt Мање од $filter=revenue lt 100000
le Мање од или једнако $filter=revenue le 100000
Логички оператори
и Логичко „и“ $filter=revenue lt 100000 and revenue gt 2000
or Логичко „или“ $filter=contains(name,'(sample)') or contains(name,'test')
not Логичка негација $filter=not contains(name,'sample')
Оператори груписања
( ) Груписање првенства (contains(name,'sample') or contains(name,'test')) and revenue gt 5000

Стандардне функције упита

Web API подржава ове стандардне OData функције упита ниске:

Function Пример
садржи $filter=contains(name,'(sample)')
завршава се са $filter=endswith(name,'Inc.')
startswith $filter=startswith(name,'a')

Dataverse функције упита

Web API подржава Dataverse функције упита за филтрирање резултата. Више информација потражите у чланку Референца Web API функција упита.

Редослед резултата

Наведите редослед којим се артикли враћају помоћу  $ ордербy системског  упита. Користите  асц или  десц  суфикс да бисте навели растући или опадајући редослед. Подразумевана вредност је растући редослед ако суфикс није примењен. Следећи пример приказује преузимање својстава имена и прихода пословних контаката сложених по приходу у растућем редоследу и по имену у опадајућем редоследу.

Метод URI
GET [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

Резултати агрегирања и груписања

Коришћењем  $ апплy податке  можете да агрегирате и групирате динамички као што се види у следећим примерима:

Сценарији Пример
Листа јединствених статуса у упиту accounts?$apply=groupby((statuscode))
Агрегатни збир процењене вредности opportunities?$apply=aggregate(estimatedvalue with sum as total)
Просечна величина погодбе на основу процењене вредности и статуса opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue)
Збир процењене вредности на основу статуса opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total))
Укупан приход могућности за пословање по имену пословног контакта opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total))
Имена примарних контаката за пословне контакте у 'WA' accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname))
Датум и време последњег креираног записа accounts?$apply=aggregate(createdon with max as lastCreate)
Датум и време првог креираног записа accounts?$apply=aggregate(createdon with min as firstCreate)

Преузимање броја редова

Користите  $ цоунт системског  упита са вредношћу која је тачна да бисте укључили пребројавање ентитета који одговарају критеријумима филтера до 5.000.

Метод URI
GET [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"
    }
]
}

Ако не желите да вратите податке осим пребројавања, можете да примените  $ цоунт било  коју колекцију да бисте добили само вредност.

Метод URI
GET [Portal URI/_api/accounts/$count

Пример:
https://contoso.powerappsportals.com/_api/accounts/$count

Пример одговора

3

Поређење колона

Следећи пример приказује како се упоређују колоне помоћу Web 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

Преузимање записа повезаних табела упитом

Користите опцију  $ еxпанд  упита у својствима навигације да бисте контролисали податке повезаних ентитета.

Својство навигације повеане са проналажењем

Мораћете да користите Microsoft.Dynamics.CRM.associatednavigationproperty као атрибут проналажења када користите опцију упита $expand.

Да бисте утврдили 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
GET [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
GET [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)

Следећи корак

Операције писања, ажурирања и брисања на порталима помоћу Web API-ја

Погледајте и

Преглед Web API-ја за портале
Водич: Коришћење Web API-ја за портале
Конфигурисање дозвола за колоне

Напомена

Можете ли нам рећи о својим жељеним поставкама језика у документацији? Испуните кратку анкету. (имајте на уму да је ова анкета на енглеском језику)

Анкета ће трајати око седам минута. Не прикупљају се лични подаци (изјава о приватности).