Dopytujte údaje pomocou webového rozhrania API portálu
Môžete použiť dostupné operácie webového rozhrania API v riešení Power Pages. Webové operácie API pozostávajú z požiadaviek HTTP a odpovedí. V tomto článku sú uvedené vzorové operácie čítania, metódy, URI a vzorové JSON, ktoré môžete použiť v žiadosti HTTP.
Požiadavky
Vaša verzia webovej lokality musí byť 9.4.1.x alebo vyššia.
Povoľte tabuľku a pole pre operácie webového rozhrania API. Ďalšie informácie: Nastavenia lokality pre webové rozhranie API
Webové rozhranie API portálov pristupuje k záznamom tabuľky a riadi sa povoleniami tabuľky, ktoré dostali používatelia prostredníctvom pridružených webových rol. Uistite sa, že ste nakonfigurovali správne povolenia tabuľky. Ďalšie informácie: Vytváranie webových rolí
Poznámka
Pri odkaze na tabuľky Dataverse pomocou webového rozhrania API portálov vo vašom kóde musíte použiť EntitySetName, napríklad na prístup k tabuľke obchodný vzťah, syntax kódu použije EntitySetName obchodných vzťahov.
Dotazovanie záznamov
Nasledujúci príklad dotazuje záznamy obchodných vzťahov:
Prevádzka | Metóda | URI |
---|---|---|
Načítanie záznamov tabuľky | GET | [Portal URI]/_api/accounts Príklad: https://contoso.powerappsportals.com/_api/accounts |
Ukážka odpoveď
{
"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"
}
]
}
Použite možnosti systémového dotazu $select a $top na vrátenie vlastnosti názvu pre prvé tri obchodné vzťahy:
Prevádzka | Metóda | URI |
---|---|---|
Získanie prvých troch záznamov entít | GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Príklad: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Načítanie účtu pomocou ID účtu:
Prevádzka | Metóda | URI |
---|---|---|
Načítanie konkrétnej vlastnosti pre záznam | GET | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name Príklad: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Ukážka odpoveď
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Použitie možností systémových dotazov
Každá z možností systémového dotazu, ktorú pripojíte k URL pre množinu entít, sa pridá pomocou syntaxe pre reťazce dotazu. Prvý je pripojený za [ ? ] a nasledujúce možnosti dotazu sú oddelené pomocou [ & ]. Všetky možnosti dotazu rozlišujú malé a veľké písmená, ako je znázornené v nasledujúcom príklade:
Metóda | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 Príklad: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Požiadanie konkrétnych vlastností
Použite možnosť systémového dotazu $select na obmedzenie vrátených vlastností, ako je znázornené v nasledujúcom príklade:
Metóda | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Príklad: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Dôležité
Toto je osvedčený postup z hľadiska výkonu. Ak vlastnosti nie sú špecifikované a vy ste nakonfigurovali hodnotu nastavenia lokality Webapi/<table name>/fields
na *
, potom sa všetky vlastnosti vrátia pomocou $select
. Ak nie sú špecifikované žiadne vlastnosti, vráti sa chyba.
Filtrovať výsledky
Použite $filter možnosť systémového dotazu na nastavenie kritérií, pre ktoré sa vrátia riadky.
Štandardné operátory filtrov
Webové rozhranie API podporuje štandardné operátory filtrov OData uvedené v nasledujúcej tabuľke:
Operátor | Opis | Príklad |
---|---|---|
Porovnávacie operátory | ||
eq | Rovná sa | $filter=revenue eq 100000 |
ne | Nerovná sa | $filter=výnosy nie 100000 |
gt | Väčšie ako | $filter=revenue gt 100000 |
ge | väčšie než alebo rovné | $filter=revenue ge 100000 |
lt | Menšie ako | $filter=revenue lt 100000 |
le | Menšie než alebo rovné | $filter=revenue le 100000 |
Logické operátory | ||
and | Logický operátor AND | $filter=revenue lt 100000 a tržby gt 2000 |
or | Logický operátor OR | $filter=contains(name,'(vzorka)') alebo obsahuje(name,'test') |
not | Logická negácia | $filter=neobsahuje(názov,'ukážka') |
Operátori zoskupovania | ||
( ) | Prednostné zoskupenie | (obsahuje(názov,'vzorka') alebo obsahuje(názov,'test')) a príjem 5000 gt |
Štandardné funkcie dotazov
Webové rozhranie API podporuje tieto štandardné funkcie dotazov reťazca OData:
Funkcia | Príklad |
---|---|
obsahuje | $filter=contains(name,'(ukážka)') |
končí na | $filter=endswith(name,'Inc.') |
začína na | $filter=startswith(name,'a') |
Dotazovacie funkcie Dataverse
Webové rozhranie API podporuje funkcie dotazovania Dataverse na filtrovanie výsledkov. Ďalšie informácie nájdete v časti Odkaz na funkciu dotazovania webového rozhrania API.
Usporiadať výsledky
Zadajte poradie, v ktorom sa položky vrátia pomocou možnosti systémového dotazu $orderby. Použite príponu asc alebo desc na určenie vzostupného alebo zostupného poradia. Ak sa prípona nepoužije, predvolená hodnota je vzostupná. Nasledujúci príklad ukazuje načítanie názvu a vlastností výnosov obchodných vzťahov zoradených vzostupne podľa výnosu a zostupne podľa názvu.
Metóda | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 Príklad: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Agregovanie a zoskupovanie výsledkov
Použitím príkazu $apply môžete údaje agregovať a zoskupovať dynamicky, ako je to znázornené v nasledujúcich príkladoch:
Scenáre | Príklad |
---|---|
Zoznam jedinečných stavov v dotaze | účty?$apply=groupby((statuscode)) |
Agregovaný súčet odhadovanej hodnoty | príležitosti?$apply=aggregate(odhadovaná hodnota so súčtom ako celkom) |
Priemerná veľkosť obchodu na základe odhadovanej hodnoty a stavu | príležitosti?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) |
Súčet odhadovanej hodnoty na základe stavu | príležitosti?$apply=groupby((statuscode),aggregate(estimatedvalue with total as total)) |
Celkový výnos z príležitosti podľa názvu obchodného vzťahu | príležitosti?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with total as total)) |
Mená primárnych kontaktov pre obchodné vzťahy vo „WA“ | účty?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Dátum a čas posledného vytvoreného záznamu | účty?$apply=aggregate(createdon with max as lastCreate) |
Dátum a čas prvého vytvoreného záznamu | účty?$apply=aggregate(vytvorené s min ako firstCreate) |
Načítanie počtu riadkov
Použite možnosť systémového dotazu $count s hodnotou true na zahrnutie počtu entít, ktoré zodpovedajú kritériám filtra, až do 5000.
Metóda | URI |
---|---|
GET | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true Príklad: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Ukážka odpoveď
{
"@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"
}
]
}
Ak nechcete vrátiť žiadne údaje okrem počtu, môžete použiť $count do akejkoľvek kolekcie, aby ste získali len hodnotu.
Metóda | URI |
---|---|
GET | [Portal URI/_api/accounts/$count Príklad: https://contoso.powerappsportals.com/_api/accounts/$count |
Ukážka odpoveď
3
Porovnanie stĺpcov
Nasledujúci príklad ukazuje, ako porovnávať stĺpce pomocou webového rozhrania API:
Metóda | URI |
---|---|
GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname Príklad: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Načítanie súvisiacich záznamov tabuľky pomocou dotazu
Použite možnosť systémového dotazu $expand vo vlastnostiach navigácie na kontrolu toho, aké údaje zo súvisiacich entít sa vrátia.
Vyhľadanie priradenej vlastnosti navigácie
Musíte použiť Microsoft.Dynamics.CRM.associatednavigationproperty ako atribút vyhľadávania pri použití $expand možnosť dotazu.
Na určenie Microsoft.Dynamics.CRM.associatednavigationproperty atribútu môžete vykonať nasledujúcu požiadavku http GET pre stĺpec pomocou nasledujúcej konvencie pomenovania: _názov_hodnota.
V nasledujúcom príklade môžeme určiť priradenú vlastnosť navigácie stĺpca Primárny kontakt tabuľky Obchodný vzťah zadaním názvu stĺpca primarycontactid naformátovaním názvu v požiadavke: _primarycontactid_value.
Metóda | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value Príklad https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Ukážka odpoveď
{
"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"
}
]
}
Z odpovede vidíme, že priradená vlastnosť navigácie je primarycontactid. Pridruženou vlastnosťou navigácie môže byť buď vyhľadávací stĺpec logický názov alebo názov schémy podľa toho, ako bola tabuľka vytvorená.
Ďalšie informácie nájdete v časti Načítanie údajov o vlastnostiach vyhľadávania.
Získajte súvisiace záznamy tabuliek rozšírením vlastností navigácie s jednou hodnotou
Nasledujúci príklad ukazuje, ako získať kontakt pre všetky záznamy obchodných vzťahov. Pre súvisiace záznamy kontaktov získavame iba contactid a fullname.
Metóda | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) Príklad: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Ukážka odpoveď
{
"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)"
}
}
]
}
Získajte súvisiace tabuľky rozšírením vlastností navigácie s viacerými hodnotami
Ak rozbalíte navigačné parametre s viacerými hodnotami, aby ste získali súvisiace tabuľky pre množiny entít, v prípade údajov sa vráti iba jedna úroveň hĺbky. V opačnom prípade kolekcia vráti prázdne pole.
Metóda | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) Príklad: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Získajte súvisiace tabuľky rozšírením vlastností navigácie s jednou hodnotou aj s viacerými hodnotami
Nasledujúci príklad ukazuje, ako môžete rozšíriť súvisiace entity pre množiny entít pomocou vlastností navigácie s jednou hodnotou aj s viacerými hodnotami. V syntaxi kódu musíte zadať názov vzťahu tabuľky .
Metóda | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) Príklad: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Dopyt po záznamoch pomocou FetchXml
Odovzdajte dopyt FetchXml ako hodnotu reťazca zakódovanú v adrese URL do kolekcie množín entít pomocou parametra dopytu FetchXml.
Ak chcete napríklad získať údaje zo množiny entity účtu, vytvorte dotaz FetchXml, ktorým nastavíte parameter názvu prvku entity na účet.
<fetch top='2'>
<entity name='account'>
<attribute name='name' />
</entity>
</fetch>
Reťazec zakódovaný v adrese URL pre predchádzajúci dopyt je:
%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
Metóda | URI |
---|---|
GET | [Portal URI]/_api/accounts?fetchxml Príklad: 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 |
Ukážka odpoveď
{
"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)"
}
}
]
}
Ďalší krok
Portály zapisujú, aktualizujú a vymazávajú operácie pomocou webového rozhrania API