Vaicājumu dati, izmantojot portālu tīmekļa API
Varat izmantot pieejamās tīmekļa API operācijas progrtammā Power Pages. 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 vietnes 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īmes
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 | SAŅEMT | [Portal URI]/_api/accounts Piemērs: https://contoso.powerappsportals.com/_api/accounts |
atbilde 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 | SAŅEMT | [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 | SAŅEMT | [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 |
atbilde 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 tālāk norādītā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 |
---|---|
SAŅEMT | [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 $select vaicājuma opciju, lai ierobežotu atgrieztos rekvizītus, kā parādīts šajā piemērā:
Metode | URI |
---|---|
SAŅEMT | [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 $filter sistēmas vaicājuma opciju, lai iestatītu kritērijus, kurām tiek atgrieztas rindas.
Standarta filtra operatori
Tīmekļa API atbalsta standarta OData filtra operatorus, kas norādīti tālāk sniegtajā tabulā:
Operatora | Apraksts | Piemērs |
---|---|---|
Salīdzināšanas operatori | ||
eq | Vienāds | $filter=Ieņēmumu eq 100000 |
ne | Nav vienāds | $filter=ieņēmumi ne 100000 |
gt | Ir lielāks nekā | $filter=ieņēmumi gt 100000 |
ge | Lielāks par vai vienāds ar | $filter=ieņēmumi ge 100000 |
lt | Ir mazāks nekā | $filter=ieņēmumi lt 100000 |
le | Mazāks par vai vienāds ar | $filter=ieņēmumi le 100000 |
Loģiskie operatori | ||
UN | Loģisks un | $filter=Ieņēmumi LT 100000 un ieņēmumi GT 2000 |
or | Loģisks vai | $filter=satur(nosaukums,'(paraugs)') vai satur(nosaukums,'tests') |
not | Loģiskais noliegums | $filter=nesatur(nosaukums,'paraugs') |
Operatoru grupēšana | ||
( ) | Prioritārā grupēšana | (satur(nosaukums,'paraugs') vai satur(nosaukums,'tests')) un ieņēmumus GT 5000 |
Standarta vaicājuma funkcijas
Tīmekļa API atbalsta šīs standarta OData virknes vaicājuma funkcijas:
Funkcija | Piemērs |
---|---|
contains | $filter=satur(nosaukums,'(paraugs)') |
endswith | $filter=endswith(nosaukums,'Inc.') |
startswith | $filter=sākas ar(vārds,'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 vaicājuma opciju. Izmantojiet asc vai desc sufiksu, lai attiecīgi norādītu 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 |
---|---|
SAŅEMT | [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 apkopot un grupēt datus dinamiski, kā redzams tālāk norādītajos piemēros:
Scenārijus | Piemērs |
---|---|
Vaicājuma unikālo statusu saraksts | accounts?$apply=groupby((statuscode)) |
Prognozētās vērtības kopsumma | iespējas?$apply=kopsumma(aplēstā vērtība ar summu kā kopsummu) |
Vidējais darījuma lielums, pamatojoties uz prognozēto vērtību un statusu | iespējas?$apply=groupby((statuscode),aggregate(aplēstā vērtība ar vidējo vērtību kā vidējo vērtību) |
Uz statusu pamatota prognozējamās vērtības summa | iespējas?$apply=groupby((statuscode),aggregate(estimatedvalue ar summu kā kopsummu)) |
Iespējas ieņēmumu kopsumma pēc uzņēmuma nosaukuma | iespējas?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue ar summu kā kopsummu)) |
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 ar max kā lastCreate) |
Pirmā izveidotā ieraksta datums un laiks | accounts?$apply=aggregate(createdon ar min kā firstCreate) |
Rindu skaita izgūšana
Izmantojiet $count vaicājuma opciju ar vērtību patiess, lai iekļautu entītiju skaitu, kas atbilst filtra kritērijiem, līdz pat 5 000.
Metode | URI |
---|---|
SAŅEMT | [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 |
atbilde 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 datus, izņemot skaitu, varat lietot $count jebkurai kolekcijai, lai iegūtu tikai vērtību.
Metode | URI |
---|---|
SAŅEMT | [Portal URI/_api/accounts/$count Piemērs: https://contoso.powerappsportals.com/_api/accounts/$count |
atbilde 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 $expand sistēmas vaicājuma opciju, lai kontrolētu, kādi dati no saistītām entītijām tiek atgriezti.
Ar navigācijas rekvizītu saistīta uzmeklēšana
Izmantojot vaicājuma opciju $expand , kā uzmeklēšanas atribūts ir jāizmanto Microsoft.Dynamics.CRM.associatednavigationproperty .
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 |
atbilde 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.
Papildinformā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) |
atbilde 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 atgriež tukšu masīvu.
Metode | URI |
---|---|
SAŅEMT | [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. Tabulas relācijas nosaukums ir jānorāda koda sintaksē.
Metode | URI |
---|---|
SAŅEMT | [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) |
Vaicājumu ieraksti, izmantojot FetchXml
Nododiet vaicājumu FetchXml kā URL kodētu virknes vērtību entītiju kopas kolekcijai, izmantojot vaicājuma parametru FetchXml.
Piemēram, lai izgūtu datus no uzņēmuma entītiju kopas, izveidojiet vaicājumu FetchXml, iestatot entītijas elementa nosaukuma parametru kontam.
<fetch top='2'>
<entity name='account'>
<attribute name='name' />
</entity>
</fetch>
Iepriekšējā vaicājuma URL kodētā virkne ir:
%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
Metode | URI |
---|---|
SAŅEMT | [Portal URI]/_api/accounts?fetchxml Piemērs: 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 |
atbilde 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)"
}
}
]
}
Nākamā darbība
Portāli raksta, atjaunina un dzēš darbības, izmantojot tīmekļa API