Podaci upita pomoću web-API-ja portala (pretpregled)

Dostupne operacije web-API-ja možete koristiti na portalima. Operacije API-ja na webu sastoje se od HTTP zahtjeva i odgovora. Ovaj članak pruža ogledne operacije čitanja, metode, URI i ogledni JSON koji možete koristiti u HTTP zahtjevu.

Važno

  • To je značajka pretpregleda.
  • Značajke pretpregleda nisu namijenjene u proizvodne svrhe i mogu imati ograničene funkcije. Te su značajke dostupne prije službenog izdavanja da bi se klijentima omogućio prijevremeni pristup i slanje povratnih informacija.
  • Nakon što je ova značajka omogućena, tablice i stupci konfigurirani u postavkama web-mjesta za web-API bit će dostupni za operacije čitanja.

Preduvjeti

  • Omogućite tablicu i polje za operacije web-API-ja. Dodatne informacije: Postavke web-mjesta za web-API

  • Web-API portala pristupa zapisima tablice i slijedi dozvole tablice dane korisnicima putem pridruženih web-uloga. Provjerite jeste li konfigurirali ispravne dozvole za tablicu. Dodatne informacije: Stvaranje web-uloga

Postavka web-mjesta za operacije čitanja web-API-ja

Morate konfigurirati postavku web-mjesta WebAPI/enableReadOperationPreview i postaviti njegovu vrijednost na True da biste omogućili operacije čitanja pomoću web-API-ja portala.

Omogućite postavku web-API-ja za čitanje postavki web-mjesta za čitanje.

Važno

Ova postavka web-mjesta potrebna je samo tijekom razdoblja pretpregleda.

Zapisi upita

Sljedeći primjer šalje upite zapisima računa:

Operacija Metoda URI
Dohvaćanje zapisa tablice DOBITI [Portal URI]/_api/accounts

Primjer:
https://contoso.powerappsportals.com/_api/accounts

Ogledni 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 $select i $top mogućnosti upita sustava da biste vratili svojstvo naziva za prva tri računa:

Operacija Metoda URI
Dohvaćanje prva tri zapisa entiteta DOBITI [Portal URI]/_api/accounts?$select=name,revenue&$top=3

Primjer:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

Dohvati račun pomoću ID-a računa:

Operacija Metoda URI
Dohvaćanje određenog svojstva zapisa DOBITI [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

Primjer:
https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name

Ogledni odgovor

{
    "@odata.etag": "W/\"1066414\"",
    "name": "Adventure Works (sample)",
    "accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}

Primjena mogućnosti upita sustava

Svaka od mogućnosti upita sustava koju dodate URL-u skupa entiteta dodaje se pomoću sintakse za nizove upita. Prva se dodaje iza [·] ?, a sljedeće mogućnosti upita odvajaju se pomoću [&] programa. Sve mogućnosti upita osjetljive su na velika i mala slova kao što je prikazano u sljedećem primjeru:

Metoda URI
DOBITI [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

Primjer:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3

Zahtjev za određenim svojstvima

Pomoću mogućnosti upita sustava $select ograničite vraćena svojstva kao što je prikazano u sljedećem primjeru:

Metoda URI
DOBITI [Portal URI]/_api/accounts?$select=name,revenue&$top=3

Primjer:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3

Važno

Ovo je najbolja praksa. Ako svojstva nisu navedena i konfigurirali ste Webapi/<table name>/fields vrijednost postavki web-mjesta na *, sva svojstva vratit će se pomoću programa $select. Ako nisu navedena svojstva, vratit će se pogreška.

Rezultati filtriranja

Pomoću mogućnosti upita sustava $filter postavite kriterije za koje će se reci vratiti.

Standardni operatori filtra

Web-API podržava standardne operatore OData filtara navedene u sljedećoj tablici:

Operater Opis Primjer
Operatori usporedbe
eq Jednako $filter=100000 prihoda
ne Nije jednako $filter=prihod ne 100000
gt Veće od 100000 $filter=prihod gt
Ge Veće od ili jednako $filter=100000 prihoda
lt Manje od $filter=prihod lt 100000
Le Manje od ili jednako $filter=100000 prihoda
Logički operatori
I Logičko i $filter=prihod lt 100000 i prihod gt 2000
or Logički ili $filter=sadrži(naziv'(uzorak)' ili sadrži (naziv', 'test')
ne Logička negacija $filter=ne sadrži(naziv,'uzorak')
Operatori grupiranja
( ) Grupiranje prvenstva (sadrži(naziv,'uzorak') ili sadrži (naziv,'test')) i prihod gt 5000

Standardne funkcije upita

Web-API podržava ove standardne funkcije niza OData:

Funkcija Primjer
sadrži $filter=sadrži(naziv'(uzorak)')
završava sa $filter=endswith(naziv'Inc.'
počinjes $filter=startswith(ime;a')

Rezultati narudžbe

Odredite redoslijed vraćanja stavki pomoću mogućnosti upita sustava $orderby. Koristite asc ili desc sufiks za određivanje uzlaznog ili silaznog redoslijeda. Zadano je uzlazno ako sufiks nije primijenjen. Sljedeći primjer prikazuje dohvaćanje naziva i svojstava prihoda računa naručenih uzlaznim prihodom i silaznim nazivom.

Metoda URI
DOBITI [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

Primjer:
https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000

Agregacija i grupiranje rezultata

Pomoću $apply možete dinamički agregirati i grupirati podatke kao što se vidi u sljedećim primjerima:

Scenariji Primjer
Popis jedinstvenih stanja u upitu računi?$apply=groupby((statuscode))
Zbirni zbroj procijenjene vrijednosti prilike?$apply=aggregate(procijenjena vrijednost sa zbrojem kao ukupnim zbrojem)
Prosječna veličina posla na temelju procijenjene vrijednosti i statusa prilike?$apply=groupby((statuscode),aggregate(procijenjena vrijednost s prosjekom kao prosječna vrijednost)
Zbroj procijenjene vrijednosti na temelju statusa prilike?$apply=groupby((statuscode),aggregate(procijenjena vrijednost sa zbrojem kao ukupnim))
Ukupan prihod od prilike po nazivu računa prilike?$apply=groupby((parentaccountid/name),aggregate(procijenjena vrijednost sa zbrojem kao ukupnim))
Primarna imena kontakata za poslovne subjekte u sustavu 'WA' računi?$apply=filter(adresa1 _ stateorprovince eq 'WA')/groupby((primarnikontatid/puno ime))
Datum i vrijeme zadnjeg stvaranja zapisa računi?$apply=aggregate(stvoreno s najviše kao lastCreate)
Datum i vrijeme prvog stvaranja zapisa poslovni subjekti?$apply=aggregate(stvoreno u obliku min kao prvokreatno)

Dohvaćanje broja redaka

Pomoću mogućnosti upita sustava $count s vrijednošću true uključite broj entiteta koji odgovaraju kriterijima filtriranja do 5.000.

Metoda URI
DOBITI [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true

Primjer:
https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true

Ogledni 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 vratiti podatke osim broja, možete primijeniti $count na bilo koju zbirku da biste dobili samo vrijednost.

Metoda URI
DOBITI [Portal URI/_api/accounts/$count

Primjer:
https://contoso.powerappsportals.com/_api/accounts/$count

Ogledni odgovor

3

Usporedba stupaca

Sljedeći primjer pokazuje kako usporediti stupce pomoću web-API-ja:

Metoda URI
GET [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname

Primjer:
https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname

Pomoću mogućnosti upita sustava $expand u navigacijskim svojstvima kontrolirajte koji se podaci iz povezanih entiteta vraćaju.

Sljedeći primjer prikazuje kako dohvatiti kontakt za sve zapise o poslovnim subjektima. Za povezane zapise o kontaktima dohvaćamo samo kontaktid i puno ime.

Metoda URI
GET [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)

Primjer:
https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)

Ogledni 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 navigacijske parametre s vrijednošću zbirke da biste dohvatili povezane tablice za skupove entiteta, vraća se samo jedna razina dubine ako postoje podaci. U suprotnom, zbirka će vratiti prazno polje.

Metoda URI
DOBITI [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)

Primjer:
https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)

Sljedeći primjer pokazuje kako možete proširiti povezane entitete za skupove entiteta koristeći jednostruka navigacijska svojstva i navigacijska svojstva s vrijednošću zbirke.

Metoda URI
DOBITI [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)

Primjer:
https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)

Sljedeći korak

Portali pišu, ažuriraju i brišu operacije pomoću web-API-ja

Pogledajte

Pregled Web API-ja za portale
Praktični vodič: Korištenje web-API-ja portala