Deli z drugimi prek


Poizvedba podatkov s spletnim API-jem portalov

V storitvi Power Pages lahko uporabljate razpoložljive operacije spletnega API-ja. Postopki spletnega API-ja sestavljajo zahteve in odgovori HTTP. Ta članek prikazuje vzorčne operacije branja, metode, URI in vzorec JSON, ki ga lahko uporabite v zahtevi HTTP.

Zahteve

  • Vaša različica spletnega mesta mora biti 9.4.1.x ali novejša.

  • Omogočite 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 za tabele, ki so uporabnikom dodeljeni prek povezane spletne vloge. Prepričajte se, da ste konfigurirali ustrezna dovoljenja za tabelo. Več informacij: Ustvarjanje spletnih vlog

opomba,

Pri sklicevanju na tabele Dataverse, ki uporabljajo spletni API portalov, morate uporabiti EntitySetName, na primer za dostop do tabele kupca bo sintaksa kode uporabljala EntitySetName za kupce.

Poizvedovanje zapisov

Naslednji primer poizveduje po zapisih kupcev:

Operacija Način URI
Pridobivanje zapisa tabele GET [Portal URI]/_api/accounts

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

Odziv za vzorec

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

Uporabite možnosti sistema poizvedovanja $select in $stop za vrnitev lastnosti imena za prve tri kupce:

Operacija Način URI
Pridobivanje prvih treh zapisov entitet GET [Portal URI]/_api/accounts?$select=name,revenue&$top=3

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

Pridobite kupca z ID-jem kupca:

Operacija Način URI
Pridobivanje specifične lastnosti 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

Odziv za vzorec

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

Uporaba možnosti sistema poizvedovanja

Vsaka možnost sistema poizvedovanja, ki jo dodate URL-ju za nabor entitet, se doda s sintakso za nize poizvedbe. Prva je dodana za [?], naslednje možnosti poizvedbe pa so ločene z možnostjo [&]. Vse možnosti poizvedbe razlikujejo med malimi in velikimi črkami, kot je prikazano v naslednjem primeru:

Način 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

Lastnosti, ki so značilne za zahtevo

Uporabite možnost sistema poizvedovanja $select za omejitev vrnjenih lastnosti, kot je prikazano v naslednjem primeru:

Način 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 so najboljši postopki za učinkovitost delovanja. Če lastnosti niso določene in ste konfigurirali vrednost nastavitve mesta Webapi/<table name>/fields na*, bodo vse lastnosti vrnjene z uporabo $select. Če lastnosti niso navedene, bo vrnjena napaka.

Filtriranje rezultatov

Uporabi možnost sistema za poizvedovanje $filter za nastavitev kriterijev, za katere bodo vrstice vrnjene.

Standardni operaterji filtrov

Spletni API podpira standardne operaterje filtrov OData, navedene v naslednji tabeli:

Operator Opis Primer
Operatorji primerjanja
eq enako $filter=revenue eq 100000
ne Ni enako $filter=revenue ne 100000
gt Večje od $filter=revenue gt 100000
ge Večje od ali enako $filter=revenue ge 100000
lt Manjše od $filter=revenue lt 100000
le Manjše od ali enako $filter=revenue le 100000
Logični operatorji
IN Logični operater and $filter=revenue lt 100000 and revenue gt 2000
or Logični operater or $filter=contains(name,'(sample)') or contains(name,'test')
not Logična negacija $filter=not contains(name,'sample')
Združevanje operatorjev
( ) Prednostno združevanje (contains(name,'sample') or contains(name,'test')) and revenue gt 5000

Standardne funkcije poizvedbe

Spletni API podpira te standardne funkcije poizvedbe za niz OData:

Funkcija Primer
vsebuje $filter=contains(name,'(sample)')
se konča z $filter=endswith(name,'Inc.')
se začne z $filter=startswith(name,'a')

Funkcije poizvedbe Dataverse

Spletni API podpira funkcije poizvedbe Dataverse za filtriranje rezultatov. Za več informacij glejte Referenca funkcije poizvedbe spletnega API-ja.

Vrstni red rezultatov

Določite vrstni red, v katerem se elementi vračajo z uporabo možnosti sistema za poizvedovanje $orderby. Uporabite pripono asc ali desc, da določite naraščajoči oziroma padajoči vrstni red. Privzeto je naraščajoči vrstni red, če pripona ni uporabljena. Naslednji primer prikazuje pridobivanje imena in lastnosti prihodka kupcev, razvrščenih po naraščajočem prihodku in padajočem imenu.

Način 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

Seštevanje in združevanje rezultatov

S pomočjo $apply lahko svoje podatke dinamično seštejete in združite v skupine, kot je prikazano v naslednjih primerih:

Scenariji Primer
Seznam enoličnih stanj v poizvedbi accounts?$apply=groupby((statuscode))
Združevalna vsota predvidene vrednosti opportunities?$apply=aggregate(estimatedvalue with sum as total)
Povprečna velikost posla na podlagi ocenjene vrednosti in stanja opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue)
Vsota ocenjene vrednosti glede na stanje opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total))
Skupni prihodek od priložnosti glede na ime kupca opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total))
Imena glavnih stikov za kupce v »WA« accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname))
Datum in ura zadnje ustvarjenega zapisa accounts?$apply=aggregate(createdon with max as lastCreate)
Datum in ura prvega ustvarjenega zapisa accounts?$apply=aggregate(createdon with min as firstCreate)

Pridobivanje števila vrstic

Uporabite možnost sistema poizvedovanja $count z vrednostjo true za vključitev števila entitet, ki se ujemajo s kriteriji filtra do 5000.

Način 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

Odziv za vzorec

{
"@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 števila, lahko uporabite $count za katero koli zbirko, da dobite samo vrednost.

Način URI
GET [Portal URI/_api/accounts/$count

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

Odziv za vzorec

3

Primerjava stolpcev

Naslednji primer prikazuje, kako primerjati stolpce s spletnim API-jem:

Način 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 možnost sistema poizvedovanja $expand v lastnostih krmarjenja za nadzor, kateri podatki iz povezanih entitet se vrnejo.

Iskanje povezave lastnosti krmarjenja

Uporabiti boste morali lastnost Microsoft.Dynamics.CRM.associatednavigationproperty kot atribut iskanja pri uporabi možnosti poizvedbe $expand.

Za določitev lastnosti Microsoft.Dynamics.CRM.associatednavigationproperty atributa lahko naredite naslednjo zahtevo http GET za stolpec, pri čemer uporabite naslednji dogovor o poimenovanju: _name_value.

V naslednjem primeru lahko določimo povezano lastnost krmarjenja za stolpec Glavni stik tabele kupca, tako da navedete ime stolpca primarycontactid z oblikovanjem imena v zahtevi: _primarycontactid_value.

Način URI
GET [Portal URI]/_api/accounts?$select=_primarycontactid_value

Primer
https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value

Odziv za vzorec

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

Iz odziva vidimo, da je povezana lastnost krmarjenja primarycontactid. Povezana lastnost krmarjenja je lahko logično ime ali ime sheme iskalnega stolpca, odvisno kako je bila tabela ustvarjena.

Za več informacij glejte Pridobivanje podatkov o lastnostih iskanja.

Naslednji primer prikazuje, kako pridobiti stik za vse zapise kupca. Za povezane zapise stika pridobivamo samo contactid in fullname.

Način 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)

Odziv za vzorec

{
"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 parametre krmarjenja, ovrednotene z zbirko, da pridobite povezane tabele za nabore entitet, je vrnjena samo ena raven globine, če obstajajo podatki. V nasprotnem primeru bo zbirka vrnila prazno polje.

Način 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 lastnosti krmarjenja z eno vrednostjo in lastnosti krmarjenja, ovrednotene z zbirko. V sintaksi kode boste morali navesti ime odnosa tabele.

Način 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

Postopki pisanja, posodabljanja in brisanja z uporabo spletnih API-jev portalov

Glejte tudi