Poizvedba podatkov s spletnim API-jem portalov
V storitvi Power Pages lahko uporabljate razpoložljive operacije spletnega API-ja. Postopki spletnega API-ja sestavljajo zahteve in odgovori HTTP. Ta članek prikazuje vzorčne operacije branja, metode, URI in vzorec JSON, ki ga lahko uporabite v zahtevi HTTP.
Zahteve
Vaša različica spletnega mesta mora biti 9.4.1.x ali novejša.
Omogočite tabelo in polje za operacije spletnega API-ja. Več informacij: Nastavitve spletnega mesta za spletni API
Spletni API portalov dostopa do zapisov tabele in sledi dovoljenjem za tabele, ki so uporabnikom dodeljeni prek povezane spletne vloge. Prepričajte se, da ste konfigurirali ustrezna dovoljenja za tabelo. Več informacij: Ustvarjanje spletnih vlog
opomba,
Pri sklicevanju na tabele Dataverse, ki uporabljajo spletni API portalov, morate uporabiti EntitySetName, na primer za dostop do tabele kupca bo sintaksa kode uporabljala EntitySetName za kupce.
Poizvedovanje zapisov
Naslednji primer poizveduje po zapisih kupcev:
Operacija | Način | URI |
---|---|---|
Pridobivanje zapisa tabele | GET | [Portal URI]/_api/accounts Primer:https://contoso.powerappsportals.com/_api/accounts |
Odziv za vzorec
{
"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"
}
]
}
Uporabite možnosti sistema poizvedovanja $select in $stop za vrnitev lastnosti imena za prve tri kupce:
Operacija | Način | URI |
---|---|---|
Pridobivanje prvih treh zapisov entitet | GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Primer:https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Pridobite kupca z ID-jem kupca:
Operacija | Način | URI |
---|---|---|
Pridobivanje specifične lastnosti za zapis | GET | [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 |
Odziv za vzorec
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Uporaba možnosti sistema poizvedovanja
Vsaka možnost sistema poizvedovanja, ki jo dodate URL-ju za nabor entitet, se doda s sintakso za nize poizvedbe. Prva je dodana za [?], naslednje možnosti poizvedbe pa so ločene z možnostjo [&]. Vse možnosti poizvedbe razlikujejo med malimi in velikimi črkami, kot je prikazano v naslednjem primeru:
Način | URI |
---|---|
GET | [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 |
Lastnosti, ki so značilne za zahtevo
Uporabite možnost sistema poizvedovanja $select za omejitev vrnjenih lastnosti, kot je prikazano v naslednjem primeru:
Način | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Primer:https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Pomembno
To so najboljši postopki za učinkovitost delovanja. Če lastnosti niso določene in ste konfigurirali vrednost nastavitve mesta Webapi/<table name>/fields
na*
, bodo vse lastnosti vrnjene z uporabo $select
. Če lastnosti niso navedene, bo vrnjena napaka.
Filtriranje rezultatov
Uporabi možnost sistema za poizvedovanje $filter za nastavitev kriterijev, za katere bodo vrstice vrnjene.
Standardni operaterji filtrov
Spletni API podpira standardne operaterje filtrov OData, navedene v naslednji tabeli:
Operator | Opis | Primer |
---|---|---|
Operatorji primerjanja | ||
eq | enako | $filter=revenue eq 100000 |
ne | Ni enako | $filter=revenue ne 100000 |
gt | Večje od | $filter=revenue gt 100000 |
ge | Večje od ali enako | $filter=revenue ge 100000 |
lt | Manjše od | $filter=revenue lt 100000 |
le | Manjše od ali enako | $filter=revenue le 100000 |
Logični operatorji | ||
IN | Logični operater and | $filter=revenue lt 100000 and revenue gt 2000 |
or | Logični operater or | $filter=contains(name,'(sample)') or contains(name,'test') |
not | Logična negacija | $filter=not contains(name,'sample') |
Združevanje operatorjev | ||
( ) | Prednostno združevanje | (contains(name,'sample') or contains(name,'test')) and revenue gt 5000 |
Standardne funkcije poizvedbe
Spletni API podpira te standardne funkcije poizvedbe za niz OData:
Funkcija | Primer |
---|---|
vsebuje | $filter=contains(name,'(sample)') |
se konča z | $filter=endswith(name,'Inc.') |
se začne z | $filter=startswith(name,'a') |
Funkcije poizvedbe Dataverse
Spletni API podpira funkcije poizvedbe Dataverse za filtriranje rezultatov. Za več informacij glejte Referenca funkcije poizvedbe spletnega API-ja.
Vrstni red rezultatov
Določite vrstni red, v katerem se elementi vračajo z uporabo možnosti sistema za poizvedovanje $orderby. Uporabite pripono asc ali desc, da določite naraščajoči oziroma padajoči vrstni red. Privzeto je naraščajoči vrstni red, če pripona ni uporabljena. Naslednji primer prikazuje pridobivanje imena in lastnosti prihodka kupcev, razvrščenih po naraščajočem prihodku in padajočem imenu.
Način | URI |
---|---|
GET | [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 |
Seštevanje in združevanje rezultatov
S pomočjo $apply lahko svoje podatke dinamično seštejete in združite v skupine, kot je prikazano v naslednjih primerih:
Scenariji | Primer |
---|---|
Seznam enoličnih stanj v poizvedbi | accounts?$apply=groupby((statuscode)) |
Združevalna vsota predvidene vrednosti | opportunities?$apply=aggregate(estimatedvalue with sum as total) |
Povprečna velikost posla na podlagi ocenjene vrednosti in stanja | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) |
Vsota ocenjene vrednosti glede na stanje | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total)) |
Skupni prihodek od priložnosti glede na ime kupca | opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total)) |
Imena glavnih stikov za kupce v »WA« | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Datum in ura zadnje ustvarjenega zapisa | accounts?$apply=aggregate(createdon with max as lastCreate) |
Datum in ura prvega ustvarjenega zapisa | accounts?$apply=aggregate(createdon with min as firstCreate) |
Pridobivanje števila vrstic
Uporabite možnost sistema poizvedovanja $count z vrednostjo true za vključitev števila entitet, ki se ujemajo s kriteriji filtra do 5000.
Način | URI |
---|---|
GET | [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 |
Odziv za vzorec
{
"@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"
}
]
}
Če ne želite vrniti nobenih podatkov, razen števila, lahko uporabite $count za katero koli zbirko, da dobite samo vrednost.
Način | URI |
---|---|
GET | [Portal URI/_api/accounts/$count Primer:https://contoso.powerappsportals.com/_api/accounts/$count |
Odziv za vzorec
3
Primerjava stolpcev
Naslednji primer prikazuje, kako primerjati stolpce s spletnim API-jem:
Način | 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 |
Pridobite povezane zapise tabele s poizvedbo
Uporabi možnost sistema poizvedovanja $expand v lastnostih krmarjenja za nadzor, kateri podatki iz povezanih entitet se vrnejo.
Iskanje povezave lastnosti krmarjenja
Uporabiti boste morali lastnost Microsoft.Dynamics.CRM.associatednavigationproperty kot atribut iskanja pri uporabi možnosti poizvedbe $expand.
Za določitev lastnosti Microsoft.Dynamics.CRM.associatednavigationproperty atributa lahko naredite naslednjo zahtevo http GET za stolpec, pri čemer uporabite naslednji dogovor o poimenovanju: _name_value.
V naslednjem primeru lahko določimo povezano lastnost krmarjenja za stolpec Glavni stik tabele kupca, tako da navedete ime stolpca primarycontactid z oblikovanjem imena v zahtevi: _primarycontactid_value.
Način | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value Primerhttps://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Odziv za vzorec
{
"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 odziva vidimo, da je povezana lastnost krmarjenja primarycontactid. Povezana lastnost krmarjenja je lahko logično ime ali ime sheme iskalnega stolpca, odvisno kako je bila tabela ustvarjena.
Za več informacij glejte Pridobivanje podatkov o lastnostih iskanja.
Pridobite povezane zapise tabele z razširitvijo lastnosti krmarjenja z eno vrednostjo
Naslednji primer prikazuje, kako pridobiti stik za vse zapise kupca. Za povezane zapise stika pridobivamo samo contactid in fullname.
Način | 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) |
Odziv za vzorec
{
"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)"
}
}
]
}
Pridobite povezane tabele z razširitvijo lastnosti krmarjenja, ovrednotene z zbirko
Če razširite parametre krmarjenja, ovrednotene z zbirko, da pridobite povezane tabele za nabore entitet, je vrnjena samo ena raven globine, če obstajajo podatki. V nasprotnem primeru bo zbirka vrnila prazno polje.
Način | URI |
---|---|
GET | [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) |
Pridobite povezane tabele z razširitvijo lastnosti krmarjenja z eno vrednostjo in ovrednotene z zbirko
Naslednji primer prikazuje, kako lahko razširite povezane entitete za nabore entitet z uporabo lastnosti krmarjenja z eno vrednostjo in lastnosti krmarjenja, ovrednotene z zbirko. V sintaksi kode boste morali navesti ime odnosa tabele.
Način | URI |
---|---|
GET | [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) |
Naslednji korak
Postopki pisanja, posodabljanja in brisanja z uporabo spletnih API-jev portalov