Vaicājumu dati, izmantojot portālu tīmekļa API
Piezīme
No 2022. gada 12. oktobra, Power Apps portāli ir Power Pages. Papildinformācija. Pakalpojums Microsoft Power Pages tagad ir vispārēji pieejams (emuārs)
Drīzumā Power Apps portālu dokumentācija tiks migrēta un sapludināta ar Power Pages dokumentāciju.
Varat izmantot pieejamās tīmekļa API operācijas portālos. Web API operācijas sastāv no HTTP pieprasījumiem un atbildēm. Šajā rakstā ir parādītas parauga lasīšanas operācijas, metodes, URI, un JSON paraugs, ko varat izmantot HTTP pieprasījumā.
Priekšnoteikumi
Jūsu portāla versijai ir jābūt 9.4.1.x vai jaunākai.
Iespējot tabulu un lauku tīmekļa API operācijām. Papildu informācija: Tīmekļa API vietnes iestatījumi
Portālu Web API piekļūst tabulu ierakstiem un ievēro tabulas atļaujas, kas lietotājiem tiek dotas, izmantojot saistītās tīmekļa lomas. Pārliecinieties, vai ir konfigurētas pareizās tabulu atļaujas. Papildu informācija: Tīmekļa lomu izveide
Piezīme
Atsaucoties uz Dataverse tabulām, kas izmanto portālu Web API, ir jāizmanto EntitySetName, piemēram, lai piekļūtu uzņēmuma tabulai, koda sintakse izmantos uzņēmumu EntitySetName.
Vaicājuma ieraksti
Tālāk sniegtajā piemērā tiek vaicājumi par uzņēmumu ierakstiem:
Operācija | Metode | URI |
---|---|---|
Izgūt tabulu ierakstus | GET | [Portal URI]/_api/accounts Piemērs: https://contoso.powerappsportals.com/_api/accounts |
Atbildes paraugs
{
"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"
}
]
}
Izmantojiet $select un $top sistēmas vaicājuma opcijas, lai atgrieztu pirmo trīs uzņēmumu nosaukuma rekvizītu:
Operācija | Metode | URI |
---|---|---|
Izgūt pirmos trīs entītiju ierakstus | GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Piemērs: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Izgūt uzņēmumu, izmantojot uzņēmuma ID:
Operācija | Metode | URI |
---|---|---|
Izgūt noteiktu ieraksta rekvizītu | GET | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name Piemērs: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Atbildes paraugs
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Sistēmas vaicājuma opciju izmantošana
Katra no sistēmas vaicājuma opcijām, ko pievienojat entītiju kopas URL, tiek pievienota, izmantojot vaicājuma virkņu sintaksi. Pirmais tiek pievienots pēc [?], un šīs vaicājuma opcijas tiek atdalītas, izmantojot [&]. Visas vaicājuma opcijas ir reģistrjutīgas, kā parādīts šajā piemērā:
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 Piemērs: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Pieprasīt noteiktus rekvizītus
Izmantojiet opciju $select sistēmas vaicājums, lai ierobežotu atgrieztos rekvizītus, kā parādīts šajā piemērā:
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Piemērs: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Svarīgi
Šī ir veiktspējas paraugprakse. Ja rekvizīti nav norādīti un ir konfigurēta vietnes iestatījuma Webapi/<table name>/fields
vērtība uz *
, tad visi rekvizīti tiks atgriezti, izmantojot $select
. Ja nav norādīts neviens rekvizīts, tiks atgriezta kļūda.
Rezultātu filtrēšana
Izmantojiet opciju $filter sistēmas vaicājums, lai iestatītu kritērijus, kuriem rindas tiks atgrieztas.
Standarta filtra operatori
Tīmekļa API atbalsta standarta OData filtra operatorus, kas norādīti tālāk sniegtajā tabulā:
Operators | Apraksts | Piemērs |
---|---|---|
Salīdzinājuma operatori | ||
eq | Vienāds | $filter=ieņēmumu vienādi ar 100000 |
ne | Nav vienāds | $filter= ieņēmumi nav vienādi ar 100000 |
gt | Ir lielāks nekā | $filter= ieņēmumi lielāki par 100000 |
ge | Lielāks par vai vienāds ar | $filter= ieņēmumi lielāki vai vienādi ar 100000 |
lt | Ir mazāks nekā | $filter= ieņēmumi mazāki par 100000 |
le | Mazāks par vai vienāds ar | $filter= ieņēmumi mazāki vai vienādi ar 100000 |
Loģiskie operatori | ||
UN | Loģisks un | $filter=ieņēmumi mazāki par 100000 un ieņēmumi lielāki par 2000 |
or | Loģisks vai | $filter=satur(name,'(sample)') vai satur (name,'test') |
nav | Loģiskais noliegums | $filter=nesatur(nosaukums,'paraugs') |
Operatoru grupēšana | ||
( ) | Prioritārā grupēšana | (satur(name,'sample') vai satur(name,'test')) un ieņēmumi ir lielāki par 5000 |
Standarta vaicājuma funkcijas
Tīmekļa API atbalsta šīs standarta OData virknes vaicājuma funkcijas:
Funkcija | Piemērs |
---|---|
satur | $filter=satur(nosaukums,'(paraugs)') |
endswith | $filter=endswith(name,'Inc.') |
startswith | $filter=startswith(name,'a') |
Dataverse vaicājuma funkcijas
Tīmekļa API atbalsta vaicājumu funkcijas Dataverse, lai filtrētu rezultātus. Papildu informāciju skatiet Tīmekļa API atsauce uz vaicājuma funkciju.
Rezultātu kārtošana
Norādiet secību, kādā vienumi tiek atgriezti, izmantojot $orderby sistēmas vaicājuma opciju. Izmantojiet sufiksu asc vai desc **** , lai norādītu attiecīgi augošu vai dilstošu secību. Noklusējuma vērtība tiek augošā secībā, ja netiek lietots sufikss. Šajā piemērā parādīts, kā izgūt to uzņēmumu nosaukumu un ieņēmumu rekvizītus, kas pasūtīti, augošā secībā pārsniedzot ieņēmumus, pēc nosaukuma dilstošā secībā.
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 Piemērs: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Rezultātu apkopošana un grupēšana
Izmantojot $apply, jūs varat dinamiski apkopot un grupēt savus datus, kā redzams šajos piemēros:
Gadījumu piemēri | Piemērs |
---|---|
Vaicājuma unikālo statusu saraksts | accounts?$apply=groupby((statuscode)) |
Prognozētās vērtības kopsumma | opportunities?$apply=aggregate(prognozētā vērtība ar kopsummu) |
Vidējais darījuma lielums, pamatojoties uz prognozēto vērtību un statusu | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue ar vidējo vērtību kā vidējo vērtību) |
Uz statusu pamatota prognozējamās vērtības summa | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue ar kopsummu kā kopējo summu)) |
Iespējas ieņēmumu kopsumma pēc uzņēmuma nosaukuma | opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue ar kopsummu kā kopējo summu)) |
Uzņēmumu primārie kontaktpersonu vārdi vārdā 'WA' | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Pēdējā izveidota ieraksta datums un laiks | accounts?$apply=aggregate(createdon with max as lastCreate) |
Pirmā izveidotā ieraksta datums un laiks | accounts?$apply=aggregate(createdon with min as firstCreate) |
Rindu skaita izgūšana
Izmantojiet $count sistēmas vaicājuma opciju ar vērtību true, lai iekļautu entītiju skaitu, kas atbilst filtra kritērijiem līdz 5 000.
Metode | URI |
---|---|
GET | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true Piemērs: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Atbildes paraugs
{
"@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"
}
]
}
Ja nevēlaties atgriezt nekādus datus, izņemot skaitu, varat pieteikties $count jebkurai kolekcijai, lai iegūtu tikai vērtību.
Metode | URI |
---|---|
GET | [Portal URI/_api/accounts/$count Piemērs: https://contoso.powerappsportals.com/_api/accounts/$count |
Atbildes paraugs
3
Kolonnu salīdzināšana
Šajā piemērā parādīts, kā salīdzināt kolonnas, izmantojot tīmekļa API:
Metode | URI |
---|---|
GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname Piemērs: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Saistīto tabulu ierakstu izgūšana, izmantojot vaicājumu
Navigācijas rekvizītos izmantojiet opciju $expand sistēmas vaicājums, lai kontrolētu, kādi dati no saistītajām entītijām tiek atgriezti.
Ar navigācijas rekvizītu saistīta uzmeklēšana
Jums vajadzēs izmantot Microsoft.Dynamics.CRM.associatednavigationproperty kā uzmeklēšanas atribūts, izmantojot vaicājuma opciju $expand.
Lai noteiktu atribūta Microsoft.Dynamics.CRM.associatednavigationproperty, varat kolonnai veikt šādu http GET pieprasījumu, izmantojot šādu nosaukuma piešķiršanas metodi: _name_value.
Nākamajā piemērā varam noteikt saistīto Uzņēmuma tabulas Primārās kontaktpersonas kolonnas navigācijas rekvizītu, norādot kolonnas nosaukumu primarycontactid, formatējot pieprasījumā nosaukumu: _primarycontactid_value.
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value Piemērs https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Atbildes paraugs
{
"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"
}
]
}
Atbildes rakstā redzams, ka saistītais navigācijas rekvizīts ir primarycontactid. Saistītais navigācijas rekvizīts var būt vai nu uzmeklēšanas kolonnas loģiskais nosaukums, vai shēmas nosaukums atkarībā no tabulas izveides.
Papildu informāciju skatiet sadaļā Datu izgūšana par uzmeklēšanas rekvizītiem.
Saistīto tabulu ierakstu izgūšana, izvēršot vienas vērtības navigācijas rekvizītus
Šajā piemērā parādīts, kā izgūt kontaktpersonu visiem uzņēmuma ierakstiem. Attiecībā uz saistītajiem kontaktpersonu ierakstiem mēs izgūstam tikai contactid un fullname.
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) Piemērs: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Atbildes paraugs
{
"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)"
}
}
]
}
Saistīto tabulu ierakstu izgūšana, izvēršot vienas vērtības kolekcijas navigācijas rekvizītus
Ja izvēršot kolekcijas vērtību navigācijas parametrus, lai izgūtu saistīto tabulu entītiju kopas, tad, ja ir dati, tiek atgriezts tikai viens padziļinātais līmenis. Pretējā gadījumā kolekcija atgriezīs tukšu masīvu.
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) Piemērs: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Saistīto tabulu ierakstu izgūšana, izvēršot gan vienas vērtības, gan kolekcijas navigācijas rekvizītus
Tālāk sniegtajā piemērā tiek parādīts, kā varat izvērst entītiju kopām saistītās entītijas, izmantojot gan vienas vērtības, gan kolekcijas vērtību navigācijas rekvizītus. Koda sintaksē ir jānorāda tabulas attiecību nosaukums.
Metode | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) Piemērs: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Nākamā darbība
Portālu rakstīšanas, atjaunināšanas un dzēšanas darbības, izmantojot Tīmekļa API
Skatiet arī:
Portālu tīmekļa API pārskats
Apmācība: portāla tīmekļa API lietošana
Kolonnu atļauju konfigurēšana
Piezīme
Kādas ir jūsu dokumentācijas valodas preferences? Aizpildiet īsu aptauju. (ņemiet vērā, ka aptauja ir angļu valodā)
Aptaujai būs nepieciešamas aptuveni septiņas minūtes. Nekādi personas dati netiks vākti (paziņojums par konfidencialitāti).