Spørre etter data ved hjelp av web-API for portaler
Obs!
Fra og med 12. oktober 2022 er Power Apps-portaler Power Pages. Mer informasjon: Microsoft Power Pages er nå tilgjengelig (blogg)
Vi overfører og slår snart sammen Power Apps-portaldokumentasjonen med Power Pages-dokumentasjonen.
Du kan bruke tilgjengelige web-API-operasjoner i portaler. Web API-operasjoner består av HTTP-forespørsler og -svar. Denne artikkelen inneholder eksempel på leseoperasjoner, metoder, URI og eksempel-JSON du kan bruke i HTTP-forespørselen.
Krav
Portalversjonen må være 9.4.1.x eller nyere.
Aktivere tabell og felt for web-API-operasjoner. Mer informasjon: Områdeinnstillinger for web-APIen
Web-API for portaler får tilgang til tabellposter og følger tabelltillatelsene som gis til brukere via den tilknyttede webroller. Kontroller at du har konfigurert de riktige tabelltillatelsene. Mer informasjon: Opprette webroller
Obs!
Når du refererer til Dataverse-tabeller ved å bruke web-API-en for portaler, må du for eksempel bruke EntitySetName til å få tilgang til account-tabellen, og kodesyntaksen vil bruke accounts under EntitySetName.
Spørre etter oppføringer
I følgende eksempel spørres det etter forretningsforbindelsesoppføringer:
Operasjon | Method | URI |
---|---|---|
Hente tabelloppføringer | GET | [Portal URI]/_api/accounts Eksempel: https://contoso.powerappsportals.com/_api/accounts |
Eksempelsvar
{
"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"
}
]
}
Bruk $select- og $top- systemspørringsalternativer til å returnere navneegenskapen for de tre første forretningsforbindelsene:
Operasjon | Method | URI |
---|---|---|
Hente de tre første enhetsoppføringene | GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Eksempel: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Hent forretningsforbindelse ved hjelp av forretningsforbindelses-ID:
Operasjon | Method | URI |
---|---|---|
Hente bestemt egenskap for en oppføring | GET | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name Eksempel: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Eksempelsvar
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Bruke alternativer for systemspørring
Hvert av systemspørringsalternativene du tilføyer i URL-adressen for enhetssettet, legges til ved hjelp av syntaksen for spørringsstrenger. Den første legges til etter [?], og følgende spørringsalternativer er separert ved hjelp av [&]. Det skiller mellom små og store bokstaver i alle spørringsalternativer, som vist i følgende eksempel:
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 Eksempel: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Forespørre spesifikke egenskaper
Bruk $select -systemspørringsalternativet til å begrense egenskapene som returneres, som vist i følgende eksempel:
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Eksempel: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Viktig
Dette er gode fremgangsmåter for ytelse. Hvis egenskaper ikke er angitt, og du har konfigurert Webapi/<table name>/fields
-verdien for områdeinnstillingen til *
, returneres alle egenskapene ved hjelp av $select
. Hvis det ikke er angitt noen egenskaper, returneres en feil.
Filtrere resultater
Bruk $filter -systemspørringsalternativet til å angi vilkår for hvilke rader som skal returneres.
Standard filteroperatorer
Web-API-en støtter standard OData-filteroperatorer som vises i følgende tabell:
Operatør | Beskrivelse | Eksempel |
---|---|---|
Sammenligningsoperatorer | ||
eq | Lik | $filter=revenue eq 100000 |
ne | Ikke lik | $filter=revenue ne 100000 |
gt | Større enn | $filter=revenue gt 100000 |
ge | Større enn eller lik | $filter=revenue ge 100000 |
lt | Mindre enn | $filter=revenue lt 100000 |
le | Mindre enn eller lik | $filter=revenue le 100000 |
Logiske operatorer | ||
and | Logisk and | $filter=revenue lt 100000 and revenue gt 2000 |
or | Logisk or | $filter=contains(name,'(sample)') or contains(name,'test') |
not | Logisk nektelse | $filter=not contains(name,'sample') |
Grupperingsoperatorer | ||
( ) | Prioritetsgruppering | (contains(name,'sample') or contains(name,'test')) and revenue gt 5000 |
Standard spørringsfunksjoner
Web-API-en støtter disse standard OData-strengspørringsfunksjonene:
Funksjon | Eksempel |
---|---|
Inneholder | $filter=contains(name,'(sample)') |
slutter med | $filter=endswith(name,'Inc.') |
startswith | $filter=startswith(name,'a') |
Dataverse spørringsfunksjoner
Web-API-en støtter Dataverse-spørringsfunksjoner for å filtrere resultater. Hvis du vil ha mer informasjon, kan du se Referanse for web-API-spørringsfunksjon.
Rekkefølgeresultater
Angi rekkefølgen elementer returneres i, ved hjelp av $orderby -alternativet for systemspørring. Bruk asc - eller desc -suffikset til å angi stigende eller synkende rekkefølge. Standardverdien er stigende hvis suffikset ikke brukes. Eksemplet nedenfor viser hvordan du henter navn- og omsetningsegenskapene for forretningsforbindelser ordnet etter stigende omsetning og synkende navn.
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 Eksempel: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Aggregere og gruppere resultater
Ved å bruke $apply kan du aggregere og gruppere dataene dynamisk, som du kan se i følgende eksempler:
Scenarioer | Eksempel |
---|---|
Liste over unike statuser i spørringen | accounts?$apply=groupby((statuscode)) |
Aggregere summen av den beregnede verdien | opportunities?$apply=aggregate(estimatedvalue with sum as total) |
Gjennomsnittlig størrelse på avtalen basert på beregnet verdi og status | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) |
Summen av beregnet verdi basert på status | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total)) |
Total omsetning for salgsmulighet etter navn på forretningsforbindelse | opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total)) |
Hovedkontaktnavn for forretningsforbindelser i WA | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Dato og klokkeslett for sist opprettede oppføring | accounts?$apply=aggregate(createdon with max as lastCreate) |
Dato og klokkeslett for først opprettede oppføring | accounts?$apply=aggregate(createdon with min as firstCreate) |
Hente et antall rader
Bruk alternativet $count-systemspørringen med verdien sann for å inkludere antall enheter som samsvarer med filtervilkårene på opptil 5000.
Method | URI |
---|---|
GET | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true Eksempel: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Eksempelsvar
{
"@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"
}
]
}
Hvis du ikke vil returnere data bortsett fra antallet, kan du bruke $count i en samling for å hente bare verdien.
Method | URI |
---|---|
GET | [Portal URI/_api/accounts/$count Eksempel: https://contoso.powerappsportals.com/_api/accounts/$count |
Eksempelsvar
3
Sammenligning av kolonner
Følgende eksempel viser hvordan du sammenligner kolonner ved hjelp av web-API:
Method | URI |
---|---|
GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname Eksempel: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Hente relaterte tabelloppføringer med en spørring
Bruk alternativet $expand-systemspørring i navigasjonsegenskapene til å styre hvilke data fra relaterte enheter som returneres.
Oppslag av tilknyttet navigasjonsegenskap
Du må bruke Microsoft.Dynamics.CRM.associatednavigationproperty som oppslagsattributt når du bruker $expand-spørringsalternativet.
Hvis du vil finne ut Microsoft.Dynamics.CRM.associatednavigationproperty til et attributt, kan du utføre følgende http GET-forespørsel for kolonnen ved å bruke følgende navnekonvensjon: _navn_verdi.
I følgende eksempel kan vi fastsette den tilknyttede navigasjonsegenskapen for kolonnen Primær kontaktperson i tabellen Forretningsforbindelse ved å angi kolonnenavnet primarycontactid ved å formatere navnet i forespørselen: _primarycontactid_value.
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value Eksempel https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Eksempelsvar
{
"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"
}
]
}
Vi ser fra svaret at den tilknyttede navigasjonsegenskapen er primarycontactid. Den tilknyttede navigasjonsegenskapen kan enten være oppslagskolonnens logiske navn eller skjemanavn, avhengig av hvordan tabellen ble opprettet.
Hvis du vil ha mer informasjon, kan du se Hente data om oppslagsegenskaper.
Hente relaterte tabelloppføringer ved å utvide navigasjonsegenskaper med enkeltverdier
Eksemplet nedenfor viser hvordan du henter kontakten for alle forretningsforbindelsesoppføringene. For de relaterte kontaktoppføringene henter vi bare contactid og fullname.
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) Eksempel: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Eksempelsvar
{
"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)"
}
}
]
}
Hente relaterte tabeller ved å utvide navigasjonsegenskaper med samlingsverdi
Hvis du utvider navigasjonsparametere med samlingsverdi for å hente relaterte tabeller for enhetssett, returneres bare ett dybdenivå hvis det finnes data. Hvis ikke returnerer samlingen en tom matrise.
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) Eksempel: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Hente relaterte tabeller ved å utvide både navigasjonsegenskaper med samlingsverdi og enkeltverdi
Eksemplet nedenfor viser hvordan du kan utvide relaterte enheter for enhetssett med navigasjonsegenskaper både for enkeltverdi og samlingsverdi. Du må angi navnet på tabellrelasjonsnavnet i syntaksen til koden.
Method | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) Eksempel: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Neste trinn
Portaler skriver, oppdatere og sletter operasjoner ved hjelp av Web-API
Se også
Oversikt over nett-API for portaler
Opplæring: Bruke nett-API-en for portal
Konfigurer kolonnetillatelser
Obs!
Kan du fortelle oss om språkinnstillingene for dokumentasjonen? Ta en kort undersøkelse. (vær oppmerksom på at denne undersøkelsen er på engelsk)
Undersøkelsen tar rundt sju minutter. Det blir ikke samlet inn noen personopplysninger (personvernerklæring).