Del via


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