Deli z drugimi prek


Poizvedba podatkov s spletnim API-jem portalov

Opomba

Od 12. oktobra 2022 najprej je portal Power Apps Power Pages. Več informacij: Microsoft Power Pages je zdaj splošno dostopen (spletni dnevnik)
Dokumentacijo portalov Power Apps bomo kmalu preselili in združili z dokumentacijo za Power Pages.

V portalih 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 portala 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 Metoda 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 Metoda 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 Metoda 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 pripeta za [?], naslednje možnosti poizvedbe pa so ločene z [&]. Vse možnosti poizvedbe razlikujejo med malimi in velikimi črkami, 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

Lastnosti, ki so značilne za zahtevo

Uporabite $select možnost sistemske poizvedbe, da omejite vrnjene 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 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

Uporabite $filter možnost sistemske poizvedbe, da nastavite kriterije, za katere vrstice bodo 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

Z možnostjo sistemske poizvedbe $orderby določite vrstni red vrnitve elementov. Uporabite pripono asc ali desc za določitev naraščajočega oziroma padajočega vrstnega reda. 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.

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

Seštevanje in združevanje rezultatov

Z uporabo $apply, lahko dinamično združite in združite svoje podatke, 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 sistemske poizvedbe $count z vrednostjo true, da vključite število entitet, ki se ujemajo s kriteriji 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

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.

Metoda 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:

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

Pridobite povezane zapise tabele s poizvedbo

Uporabite $expand možnost sistemske poizvedbe v navigacijskih lastnostih, da nadzirate, 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.

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

Pridobite povezane zapise tabele z razširitvijo lastnosti krmarjenja z eno vrednostjo

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

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)

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

Pridobite povezane tabele z razširitvijo lastnosti krmarjenja, ovrednotene z zbirko

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

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)

Pridobite povezane tabele z razširitvijo lastnosti krmarjenja z eno vrednostjo in ovrednotene z zbirko

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.

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

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

Glejte tudi

Pregled spletnega API-ja za portale
Vadnica: uporaba spletnega API-ja portalov
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).