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/accounts

Primer:
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=3

Primer:
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=name

Primer:
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=3

Primer:
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=3

Primer:
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 90000

Primer:
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=true

Primer:
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/$count

Primer:
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 lastname

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

Uporabi $expand možnost sistemske poizvedbe v lastnostih navigacije za nadzor, kateri podatki iz povezanih entitet se vrnejo.

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)"
        }
    }
]
}

Č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)

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).