Adatok lekérdezése portálok webes API-val
Használhatja a webes API elérhető műveleteit a Power Pages szolgáltatásban. A webes API műveletek HTTP-kérelmekből és-válaszokból állnak. A cikk a HTTP-kérelemben használható olvasásiművelet-példákat, módszereket, URI-kat és minta JSON formátumokat mutat be.
Előfeltételek
A webhelyverziónak 9.4.1.x vagy újabb verziónak kell lennie.
Tábla és mező engedélyezése a webes API-műveletekhez. További információ: A webes API webhelybeállításai
A portálok webes API-ja hozzáfér az táblarekordokhoz, és követi a társított webes szerepkörök segítségével a felhasználóknak adott táblaengedélyeket. Győződjön meg róla, hogy a megfelelő táblaengedélyeket konfigurálta. További információ: Webes szerepkörök létrehozása
Feljegyzés
Amikor a portálok webes API-t használó Dataverse-táblákra hivatkozik, az EntitySetName nevet kell használnia például a fiók táblához való hozzáféréshez, a kód szintaxisa a fiókok EntitySetName fájlját fogja használni.
Rekordok lekérdezése
A következő példa lekérdezi a partnerrekordokat:
Művelet | Módszer | URI |
---|---|---|
Táblarekordok lekérdezése | KAP | [Portal URI]/_api/accounts Példa: https://contoso.powerappsportals.com/_api/accounts |
Minta válasz
{
"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"
}
]
}
A $select és $top rendszerlekérdezési opciók használatával az első három fiók névtulajdonságát adja vissza:
Művelet | Módszer | URI |
---|---|---|
Az első három entitásrekord lekérése | KAP | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Példa: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
A partner lekérése partnerazonosítóval:
Művelet | Módszer | URI |
---|---|---|
Egy rekord adott tulajdonságának lekérdezése | KAP | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name Példa: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Minta válasz
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Rendszerlekérdezési beállítások alkalmazása
Az entitáskészlet URL-jéhez hozzáfűzött rendszerlekérdezési opciók mindegyike a lekérdezési sztringek szintaxisának használatával kerül hozzáadásra. Az elsőt a [?] után fűzi hozzá, és a következő lekérdezési beállításokat [&] választja el egymástól. Minden lekérdezési opció megkülönbözteti a nagy- és kisbetűket, amint az a következő példában látható:
Módszer | URI |
---|---|
KAP | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 Példa: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Kérelem konkrét tulajdonságai
A $select rendszerlekérdezés beállítással korlátozhatja a visszaadott tulajdonságokat a következő példában látható módon:
Módszer | URI |
---|---|
KAP | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Példa: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Fontos
Ez az ajánlott eljárás a teljesítmény szempontjából. Ha a tulajdonságok nincsenek megadva, és a Webapi/<table name>/fields
webhelybeállítást *
értékre konfigurálta, a rendszer a $select
használatával minden tulajdonságot visszaad. Ha nincsenek tulajdonságok megadva, akkor hibaüzenet érkezik vissza.
Eredmények szűrése
A $filter rendszerlekérdezési beállítással megadhatja azokat a feltételeket, amelyek sorait adja vissza a rendszer.
Standard szűrőoperátorok
A webes API támogatja a következő táblában felsorolt szabványos OData-szűrőoperátorokat:
Operátor | Leírás | Példa |
---|---|---|
Összehasonlító operátorok | ||
eq | Egyenlő | $filter=bevétel eq 100000 |
ne | Nem egyenlő | $filter=bevétel ne 100000 |
gt | Nagyobb mint | $filter=bevétel gt 100000 |
ge | Nagyobb vagy egyenlő | $filter=bevétel ge 100000 |
lt | Kisebb mint | $filter=bevétel lt 100000 |
le | Kisebb vagy egyenlő | $filter=bevétel le 100000 |
Logikai operátorok | ||
and | Logikai és | $filter= Revenue LT 100000 és Revenue BT 2000 |
or | Logikai vagy | $filter=tartalmazza(név;'(minta)') vagy tartalmazza(név;'teszt') |
not | Logikai tagadás | $filter=not contains(név;'minta') |
Csoportosítási operátorok | ||
( ) | Elsőbbségi csoportosítás | (tartalmazza(név,'minta') vagy tartalmazza(név,'teszt')) és bevétel gt 5000 |
Szabványos lekérdezési funkciók
A webes API az alábbi szabványos OData lekérdezési függvényeket támogatja:
Funkció | Példa |
---|---|
tartalmazza | $filter=tartalmazza(név;'(minta)') |
endswith | $filter=vége(név;'Inc.') |
ezzelkezdődik | $filter=Startswith(név;'a') |
Dataverse-lekérdezési függvények
A webes API támogatja a eredmények szűréséhez használható Dataverse-lekérdezési függvényeket. További tudnivalók: Webes API lekérdezési függvényének referenciája.
Eredmények rendezése
Adja meg az elemek visszaadási sorrendjét az $orderby rendszerlekérdezési opcióval. Az asc vagy a desc utótagot használja a növekvő, illetve csökkenő sorrend jelzésére. Az alapértelmezett érték növekvő, ha az utótag nincs megadva. A következő példa a partnerek név- és bevételi tulajdonságainak lekérdezését mutatja növekvő bevétel és csökkenő név szerinti sorrendben.
Módszer | URI |
---|---|
KAP | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 Példa: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Eredmények összesítése és csoportosítása
Az $apply használatával dinamikusan összesítheti és csoportosíthatja az adatokat a következő példákban látható módon:
Forgatókönyvek | Példa |
---|---|
A lekérdezésben lévő egyedi állapotok listája | fiókok?$apply=groupby((statuscode)) |
A becsült érték összesített összege | lehetőségek?$apply=Összesített(Becsült érték, ahol az összeg összesen) |
Az ügylet átlagos mérete a becsült érték és az állapot alapján | lehetőségek?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) |
A becsült érték összege az állapot alapján | lehetőségek?$apply=groupby((statuscode),aggregate(becsült érték az összeggel mint összesen)) |
Összes bevételi lehetőség fióknevek szerint | lehetőségek?$apply=Groupby((parentAccountID/name),Aggregate(EstimatedValue with Sum as Total)) |
A WA fiókokkal rendelkező elsődleges kapcsolattartók neve | fiókok?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Utoljára létrehozott rekord dátuma és időpontja | accounts?$apply=aggregate(createdon with max as lastCreate) |
Először létrehozott rekord dátuma és időpontja | accounts?$apply=aggregate(createdon with min as firstCreate) |
Sorok számának lekérése
A $count igaz értékű rendszerlekérdezés lehetőség használatával a szűrési feltételeknek megfelelő entitások számát adhatja meg 5000-ig.
Módszer | URI |
---|---|
KAP | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true Példa: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Minta válasz
{
"@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"
}
]
}
Ha a darabszámon kívül semmilyen adatot nem akar visszaadni, akkor a $count szűrőt bármelyik gyűjteményre alkalmazhatja, hogy csak az értéket kapja meg.
Módszer | URI |
---|---|
KAP | [Portal URI/_api/accounts/$count Példa: https://contoso.powerappsportals.com/_api/accounts/$count |
Minta válasz
3
Oszlopok összehasonlítása
A következő példa bemutatja, hogyan hasonlíthat össze oszlopokat a webes API használatával:
Módszer | URI |
---|---|
GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname Példa: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Kapcsolódó táblarekordok keresése lekérdezéssel
A navigációs tulajdonságokban a $expand rendszerlekérdezés beállítással szabályozhatja, hogy a kapcsolódó entitásokból milyen adatok kerüljenek visszaadásra.
Kapcsolódó navigációs tulajdonság keresése
A Microsoft.Dynamics.CRM.associatednavigationproperty tulajdonságot kell használnia keresési attribútumként a $expand lekérdezési lehetőség használatakor.
Egy attribútum Microsoft.Dynamics.CRM.associatednavigationproperty tulajdonságának meghatározásához a következő http GET kérelmet kell alkalmaznia a következő elnevezési konvenciót használó oszlophoz: _name_value.
A következő példában a Partner tábla Elsődleges kapcsolattartó oszlopához kapcsolódó navigációs tulajdonságot úgy határozhatjuk meg, hogy a primarycontactid oszlopnevet megadjuk a kérelemben a név alábbi formázásával: _primarycontactid_value.
Módszer | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value Példa https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Minta válasz
{
"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"
}
]
}
A válaszból láthatjuk, hogy a kapcsolódó navigációs tulajdonság: primarycontactid. A társított navigációs tulajdonság lehet a keresési oszlop logikai neve vagy sémaneve a tábla létrehozási módjától függően.
További információ: Adatok lekérése a keresési tulajdonságokról.
Kapcsolódó táblarekordok lekérdezése egyértékű navigációs tulajdonságok kibővítésével
A következő példa bemutatja, hogyan lehet lekérdezni az összes partnerrekord kapcsolattartóit. A kapcsolódó kapcsolattartói rekordok esetén csak a contactid és a fullname adatokat kérjük le.
Módszer | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) Példa: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Minta válasz
{
"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)"
}
}
]
}
Kapcsolódó táblák lekérdezése gyűjteményértékű navigációs tulajdonságok kibővítésével
Ha a gyűjteményértékű navigációs paramétereket kibővíti az entitáskészletek kapcsolódó tábláinak lekérdezéséhez, a rendszer csak egy mélységi szintet ad vissza, ha van adat. Ellenkező esetben a gyűjtemény üres tömböt ad vissza.
Módszer | URI |
---|---|
KAP | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) Példa: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Kapcsolódó táblák lekérdezése egyértékű és gyűjteményértékű navigációs tulajdonságok kibővítésével
A következő példa azt mutatja be, hogy hogyan bonthatja ki a kapcsolódó entitásokat az entitáskészletekhez egyértékű és gyűjteményértékű navigációs tulajdonságok használatával. Meg kell adnia a táblakapcsolat nevét a kód szintaxisában.
Módszer | URI |
---|---|
KAP | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) Példa: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Rekordok lekérdezése a FetchXml használatával
Adja át a FetchXml lekérdezést URL-kódolású karakterláncértékként az entitáskészlet-gyűjteménynek a FetchXml lekérdezési paraméter használatával.
Például az adatok lekéréséhez a partner entitáskészletből, állítson össze egy FetchXml lekérdezést, amely az entitáselem nevének paraméterét állítja be a partnerre.
<fetch top='2'>
<entity name='account'>
<attribute name='name' />
</entity>
</fetch>
Az előző lekérdezés URL-kódolású karakterlánca a következő:
%3Cfetch%20top%3D%275%27%3E%0D%0A%3Centity%20name%3D%27account%27%3E%0D%0A%3Cattribute%20name%3D%27name%27%2F%3E%0D%0A%3C%2Fentity%3E%0D%0A%3C%2Ffetch%3E
Módszer | URI |
---|---|
KAP | [Portal URI]/_api/accounts?fetchxml Példa: https://contoso.powerappsportals.com/_api/accounts?fetchXml=%3Cfetch%20top%3D%275%27%3E%0D%0A%3Centity%20name%3D%27account%27%3E%0D%0A%3Cattribute%20name%3D%27name%27%2F%3E%0D%0A%3C%2Fentity%3E%0D%0A%3C%2Ffetch%3E |
Minta válasz
{
"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)"
}
}
]
}
Következő lépés
A portálok műveleteket írnak, frissítenek és törölnek a webes API használatával