Podaci upita pomoću Web API-ja za portale
Možete da koristite dostupne Web API operacije u usluzi Power Pages. Web API operacije sastoje se od HTTP zahteva i odgovora. Ovaj članak navodi primere operacija, metoda, URI-ja i JSON primere čitanja koje možete koristiti u HTTP zahtevu.
Verzija vaše veb-lokacije mora biti 9.4.1.x ili novija.
Omogućite tabelu i polje za Web API operacije. Još informacija: Postavke lokacije za Web API
Web API za portale pristupa zapisima tabele i prati dozvole za tabele date korisnicima putem pridruženih veb-uloga. Uverite se da ste konfigurisali odgovarajuće dozvole za tabelu. Još informacija: Kreiranje veb-uloga
Napomena
Kada se pozivate na Dataverse tabele koje koriste Web API portala, potrebno je da koristite EntitySetName, na primer, za pristup tabeli poslovni kontakt, sintaksa koda će koristiti EntitySetName poslovni kontakt.
Sledeći primer postavlja upite zapisima poslovnog kontakta:
Operacija | Metod | URI |
---|---|---|
Preuzimanje zapisa tabele | DOBITI | [Portal URI]/_api/accounts Primer: https://contoso.powerappsportals.com/_api/accounts |
Uzorak odgovor
{
"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"
}
]
}
Koristite opcije sistemskog upita $select i $top da biste vratili svojstvo imena za prva tri poslovna kontakta:
Operacija | Metod | URI |
---|---|---|
Preuzmi prva tri zapisa entiteta | DOBITI | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Primer: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Preuzmi poslovni kontakt pomoću ID-a poslovnog kontakta:
Operacija | Metod | URI |
---|---|---|
Preuzimanje određenog svojstva zapisa | DOBITI | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name Primer: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Uzorak odgovor
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Svaka od opcija sistemskog upita koju dodate URL adresi za skup entiteta dodaje se pomoću sintakse za niske upita. Prvi se dodaje posle [?] i sledeće opcije upita su razdvojene pomoću [&]. Sve opcije upita su osetljive na mala i velika slova, kao što je prikazano u sledećem primeru:
Metod | URI |
---|---|
DOBITI | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 Primer: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Koristite opciju sistemskog upita $select da biste ograničili vraćena svojstva, kao što je prikazano u sledećem primeru:
Metod | URI |
---|---|
DOBITI | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Primer: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Važno
Ovo je najbolja praksa za performanse. Ako svojstva nisu navedena, a vi ste podesili vrednost postavke Webapi/<table name>/fields
za lokaciju na *
, sva svojstva će biti vraćena pomoću opcije $select
. Ako nisu navedena svojstva, biće vraćena greška.
Koristite $filter opciju sistemskog upita da biste postavili kriterijume za koje se vraćaju redovi.
Web API podržava standardne operatore OData filtera navedene u sledećoj tabeli:
Operator | Opis | Primer |
---|---|---|
Upoređivanje operatora | ||
eq | Jednako | $filter= prihod ekv 100000 |
ne | Nije jednako | $filter= prihod ne 100000 |
gt | Veće od | $filter=prihod GT 100000 |
ge | Veće od ili jednako | $filter= prihod ge 100000 |
lt | Manje od | $filter=prihod lt 100000 |
le | Manje od ili jednako | $filter=prihod le 100000 |
Logički operatori | ||
I | Logičko „i“ | $filter = Prihod LT 100000 i prihod GT 2000 |
ili | Logičko „ili“ | $filter=sadrži(ime,'(uzorak)') ili sadrži(ime,'test') |
not | Logička negacija | $filter= ne sadrži(ime,'uzorak') |
Operatori grupisanja | ||
( ) | Grupisanje prvenstva | (sadrži(ime,'uzorak') ili sadrži(ime,'test')) i prihod GT 5000 |
Web API podržava ove standardne OData funkcije upita niske:
Funkciju | Primer |
---|---|
sadrži | $filter=sadrži(ime,'(uzorak)') |
završava se sa | $filter=endswith(ime,'Inc.') |
startswith | $filter=startswith(ime,'a') |
Web API podržava Dataverse funkcije upita za filtriranje rezultata. Više informacija potražite u članku Referenca Web API funkcija upita.
Navedite redosled kojim se stavke vraćaju pomoću opcije sistemskog upita $orderby. Koristite sufiks asc ili desc da biste naveli rastući ili opadajući redosled. Podrazumevana vrednost je rastući redosled ako sufiks nije primenjen. Sledeći primer prikazuje preuzimanje svojstava imena i prihoda poslovnih kontakata složenih po prihodu u rastućem redosledu i po imenu u opadajućem redosledu.
Metod | URI |
---|---|
DOBITI | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 Primer: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Korišćenjem opcije $apply podatke možete da agregirate i grupišete dinamički, kao što se vidi u sledećim primerima:
Scenarija | Primer |
---|---|
Lista jedinstvenih statusa u upitu | accounts?$apply=groupby((statuscode)) |
Agregatni zbir procenjene vrednosti | mogućnosti? $apply=agregat(procenjena vrednost sa sumom kao ukupan) |
Prosečna veličina pogodbe na osnovu procenjene vrednosti i statusa | mogućnosti? $apply=groupbi((statuscode),agregat(procenjena vrednost sa prosekom kao prosečna vrednost) |
Zbir procenjene vrednosti na osnovu statusa | mogućnosti?$apply=groupbi((statuscode),aggregate(procenjena vrednost sa sumom kao ukupan)) |
Ukupan prihod mogućnosti za poslovanje po imenu poslovnog kontakta | mogućnosti?$apply=Groupbi((parentaccountid/name),aggregate(estimatedvalue with sum as total)) |
Imena primarnih kontakata za poslovne kontakte u 'WA' | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Datum i vreme poslednjeg kreiranog zapisa | accounts?$apply=aggregate(createdon with max as lastCreate) |
Datum i vreme prvog kreiranog zapisa | accounts?$apply=agregat(createdon sa min kao firstCreate) |
Koristite opciju sistemskog upita $count sa vrednošću „tačno“ da biste uključili prebrojavanje entiteta koji odgovaraju kriterijumima filtera do 5000.
Metod | URI |
---|---|
DOBITI | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true Primer: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Uzorak odgovor
{
"@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"
}
]
}
Ako ne želite da vratite druge podatke osim prebrojavanja, možete da primenite $count na bilo koju kolekciju da biste dobili samo vrednost.
Metod | URI |
---|---|
DOBITI | [Portal URI/_api/accounts/$count Primer: https://contoso.powerappsportals.com/_api/accounts/$count |
Uzorak odgovor
3
Sledeći primer prikazuje kako se upoređuju kolone pomoću Web API-ja:
Metod | URI |
---|---|
GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname Primer: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Koristite opciju sistemskog upita $expand u svojstvima navigacije da biste kontrolisali podatke povezanih entiteta.
Potrebno je da koristite Microsoft.Dinamics.CRM.associatednavigationproperty kao atribut pretrage kada koristite opciju $expand upita.
Da biste utvrdili Microsoft.Dynamics.CRM.associatednavigationproperty atributa, možete da napravite sledeći http GET zahtev za kolonu koristeći sledeću konvenciju imenovanja: _name_value.
U sledećem primeru, možemo odrediti pridruženo svojstvo navigacije kolone Primarni kontakt tabele Poslovni kontakt tako što ćemo navesti ime kolone primarycontactid oblikovanjem imena u zahtevu: _primarycontactid_value.
Metod | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value Primer https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Uzorak odgovor
{
"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"
}
]
}
Iz odgovora vidimo da je pridruženo svojstvo navigacije primarycontactid. Svojstvo povezane navigacije može biti logičko ime ili ime šeme kolone za pronalaženje u zavisnosti od načina kreiranja tabele.
Za više informacija, pogledajte Preuzimanje podataka o osobinama pretrage.
Sledeći primer prikazuje kako se preuzima kontakt za sve zapise poslovnog kontakta. Za povezane zapise kontakata, mi preuzimamo samo contactid i fullname.
Metod | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) Primer: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Uzorak odgovor
{
"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)"
}
}
]
}
Ako proširite parametre navigacije sa kolekcijom vrednosti da biste preuzeli povezane tabele za skupove entiteta, biće vraćen samo jedan nivo dubine ako postoje podaci. U suprotnom, kolekcija vraća prazan niz.
Metod | URI |
---|---|
DOBITI | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) Primer: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Preuzimanje povezanih tabela razvijanjem svojstava navigacije sa jednom vrednošću i sa kolekcijom vrednosti
Sledeći primer pokazuje kako možete da proširite povezane entitete za skupove entiteta koristeći svojstva navigacije sa jednom vrednošću i sa kolekcijom vrednosti. Potrebno je da navedete ime odnosa tabele u sintaksi vašeg koda.
Metod | URI |
---|---|
DOBITI | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) Primer: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Pronesite FetchKsml upit kao vrednost niza kodiranu URL-om u kolekciju skupa entiteta koristeći parametar upita FetchXml.
Na primer, da biste preuzeli podatke iz skupa entitetaračuna, sastavite FetchKsml upit koji postavlja parametar imena elementa entiteta na nalog.
<fetch top='2'>
<entity name='account'>
<attribute name='name' />
</entity>
</fetch>
URL kodirani string za prethodni upit 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
Metod | URI |
---|---|
DOBITI | [Portal URI]/_api/accounts?fetchxml Primer: 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 |
Uzorak odgovor
{
"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)"
}
}
]
}
Portali pišu, ažuriraju i brišu operacije korišćenja Veb API-ja