Poizvedovanje podatkov z uporabo portalov Web API
Lahko uporabiš razpoložljive operacije spletnega API-ja v portalih. Postopki spletnega API-ja sestavljajo zahteve in odgovori HTTP. Ta članek ponuja vzorčne operacije branja, metode, URI in vzorec JSON, ki ga lahko uporabite v zahtevi HTTP.
Zahteve
Vaša različica portala mora biti 9.4.1.x ali višje.
Omogoči 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 tabele, ki so dana uporabnikom prek povezanih spletnih vlog. Prepričajte se, da ste konfigurirali ustrezna dovoljenja za tabelo. Več informacij: Ustvarite spletne vloge
Zapisi poizvedb
Naslednji primer povprašuje po zapisih računa:
| Operacija | Metoda | URI |
|---|---|---|
| Pridobite zapise tabele | GET | [Portal URI]/_api/accountsPrimer:https://contoso.powerappsportals.com/_api/accounts |
Vzorčni 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"
}
]
}
Uporaba $izberi in $top možnosti sistemske poizvedbe za vrnitev lastnosti imena za prve tri račune:
| Operacija | Metoda | URI |
|---|---|---|
| Pridobite prve tri zapise entitet | GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3Primer:https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Pridobite račun z ID-jem računa:
| Operacija | Metoda | URI |
|---|---|---|
| Pridobite določeno lastnost za zapis | GET | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=namePrimer:https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Vzorčni odgovor
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Uporabite možnosti sistemske poizvedbe
Vsaka od možnosti sistemske poizvedbe, ki jo dodate URL-ju za nabor entitet, je dodana s sintakso za nize poizvedbe. Prvi je priložen za[?] in naslednje možnosti poizvedbe so ločene z uporabo [&]. Vse možnosti poizvedbe so občutljive na velike in male črke, kot je prikazano v naslednjem primeru:
| Metoda | URI |
|---|---|
| GET | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3Primer:https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Zahtevajte posebne lastnosti
Uporabi $izberi možnost sistemske poizvedbe za omejitev vrnjenih lastnosti, kot je prikazano v naslednjem primeru:
| Metoda | URI |
|---|---|
| GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3Primer:https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Pomembno
To je najboljša praksa delovanja. Če lastnosti niso določene in ste konfiguriraliWebapi/<table name>/fields vrednost nastavitve spletnega mesta na*, potem bodo vse lastnosti vrnjene z uporabo $select. Če ni podanih nobenih lastnosti, bo vrnjena napaka.
Filtriranje rezultatov
Uporabi $filter možnost sistemske poizvedbe za nastavitev meril, za katere bodo vrnjene vrstice.
Standardni operaterji filtrov
Spletni API podpira standardne operaterje filtra OData, navedene v naslednji tabeli:
| Operator | Opis | Primer |
|---|---|---|
| Operaterji za primerjavo | ||
| eq | Enako | $filter=prihodek eq 100000 |
| ne | Ne enako | $filter=prihodek ne 100000 |
| gt | Večje od | $filter=prihodek gt 100000 |
| ge | Večje od ali enako | $filter=prihodek ge 100000 |
| lt | Manjše od | $filter=prihodek lt 100000 |
| le | Manjše od ali enako | $filter=prihodek le 100000 |
| Logični operaterji | ||
| IN | Logično in | $filter=revenue lt 100000 in prihodek gt 2000 |
| or | Logično oz | $filter=vsebuje(ime,'(vzorec)') ali vsebuje(ime,'test') |
| ne | Logična negacija | $filter=ne vsebuje(ime,'vzorec') |
| Operaterji združevanja | ||
| ( ) | Razvrščanje prednosti v skupine | (vsebuje(ime,'vzorec') ali vsebuje(ime,'test')) in prihodek 5000 gt |
Standardne funkcije poizvedbe
Spletni API podpira te standardne funkcije poizvedbe nizov OData:
| Funkcija | Primer |
|---|---|
| vsebuje | $filter=vsebuje(ime,'(vzorec)') |
| se konča z | $filter=endswith(name,'Inc.') |
| se začne z | $filter=startswith(ime,'a') |
Rezultati naročila
Določite vrstni red, v katerem se predmeti vrnejo s pomočjo $orderby možnost sistemske poizvedbe. Uporabi rast oz desc pripona za določanje naraščajočega ali padajočega vrstnega reda. Privzeto je naraščajoče, če pripona ni uporabljena. Naslednji primer prikazuje pridobivanje imena in lastnosti prihodka računov, razvrščenih po naraščajočem prihodku in po padajočem imenu.
| Metoda | URI |
|---|---|
| GET | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000Primer:https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Združevanje in združevanje rezultatov
Z uporabo $prijavi, svoje podatke lahko združite in združite dinamično, kot je razvidno iz naslednjih primerov:
| Scenariji | Primer |
|---|---|
| Seznam edinstvenih statusov v poizvedbi | računi?$apply=groupby((statuscode)) |
| Skupna vsota ocenjene vrednosti | priložnosti?$apply=aggregate(ocenjena vrednost s skupno vsoto) |
| Povprečna velikost posla temelji na ocenjeni vrednosti in statusu | priložnosti?$apply=groupby((statuscode),aggregate(ocenjena vrednost s povprečjem kot povprečna vrednost) |
| Vsota ocenjene vrednosti na podlagi statusa | priložnosti?$apply=groupby((statuscode),aggregate(ocenjena vrednost z vsoto kot skupno)) |
| Skupni prihodek od priložnosti po imenu računa | priložnosti?$apply=groupby((parentaccountid/name),aggregate(ocenjena vrednost s skupno vsoto)) |
| Imena glavnih stikov za račune v 'WA' | računi?$apply=filter(naslov1_državaaliprovinca eq 'WA')/groupby((primarninaslovstika/polnoime)) |
| Datum in čas zadnjega ustvarjenega zapisa | računi?$apply=aggregate(ustvarjeno z največ kot lastCreate) |
| Datum in ura prvega ustvarjenega zapisa | računi?$apply=aggregate(ustvarjeno z min kot firstCreate) |
Pridobite število vrstic
Uporabi $count možnost sistemske poizvedbe z vrednostjo true, da vključuje število entitet, ki ustrezajo kriterijem filtra do 5000.
| Metoda | URI |
|---|---|
| GET | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=truePrimer:https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Vzorčni 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"
}
]
}
Če ne želite vrniti nobenih podatkov razen štetja, se lahko prijavite $count v katero koli zbirko, da dobite samo vrednost.
| Metoda | URI |
|---|---|
| GET | [Portal URI/_api/accounts/$countPrimer:https://contoso.powerappsportals.com/_api/accounts/$count |
Vzorčni odgovor
3
Primerjava stolpcev
Naslednji primer prikazuje, kako primerjati stolpce s spletnim API-jem:
| Metoda | URI |
|---|---|
| GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastnamePrimer:https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Pridobite povezane zapise tabele s poizvedbo
Uporabi $expand možnost sistemske poizvedbe v lastnostih navigacije za nadzor, kateri podatki iz povezanih entitet se vrnejo.
Pridobite povezane zapise tabele z razširitvijo navigacijskih lastnosti z eno vrednostjo
Naslednji primer prikazuje, kako pridobiti stik za vse zapise računa. Za povezane zapise stikov pridobivamo samo contactid in polno ime.
| Metoda | 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) |
Vzorčni 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)"
}
}
]
}
Pridobite povezane tabele z razširitvijo navigacijskih lastnosti z vrednostjo zbirke
Če razširite navigacijske parametre z vrednostjo zbirke, da pridobite povezane tabele za nabore entitet, se vrne samo ena raven globine, če obstajajo podatki. V nasprotnem primeru bo zbirka vrnila prazno matriko.
| Metoda | 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 tako, da razširite navigacijske lastnosti z eno vrednostjo in zbirko
Naslednji primer prikazuje, kako lahko razširite povezane entitete za nabore entitet z uporabo navigacijskih lastnosti enojnih in zbirk vrednosti.
| Metoda | 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
Portali pišejo, posodabljajo in brišejo operacije z uporabo spletnega API-ja
Glejte tudi
Pregled spletnega API-ja za portale Vadnica: Uporabite spletni API portala Konfiguriranje dovoljenj za stolpec
Opomba
Ali nam lahko poveste, kateri je vaš prednostni jezik za dokumentacijo? Izpolnite kratko anketo. (upoštevajte, da je v angleščini)
Z anketo boste porabili približno sedem minut. Ne zbiramo nobenih osebnih podatkov (izjava o zasebnosti).
Povratne informacije
Pošlji in prikaži povratne informacije za