Frågedata med webb-API för portaler
Du kan använda tillgängliga webb-API-åtgärder i Power Pages. Webb-API-åtgärder består av HTTP-begäranden och svar. Den här artikeln innehåller exempel på läsåtgärder, metoder, URI och exempel på JSON som du kan använda i HTTP-begäran.
Förutsättningar
Webbplatsversionen måste vara 9.4.1.x eller högre.
Aktivera tabell och fält för webb-API-åtgärder. Mer information: Webbplatsinställningar för webb-API
Portalers webb-API ger åtkomst till tabellposter och följer tabellbehörigheterna som ges till användare via de associerade webbrollerna. Se till att du konfigurerar rätt tabellbehörigheter. Mer information: Skapa webbroller
Kommentar
När du refererar Dataverse tabeller med portalerna webb-API, måste du använda EntitySetName till exempel för åtkomst till tabellen konto kodens syntax använder EntitySetName för konton.
Frågeposter
Följande exempel ger frågor om kontoposter:
Åtgärd | Method | URI |
---|---|---|
Hämta tabellposter | GET |
[Portal URI]/_api/accounts
Exempel:https://contoso.powerappsportals.com/_api/accounts |
Exempelsvar
{
"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"
}
]
}
Använd alternativen $select och $top för att få namnegenskapen för de första tre kontona:
Åtgärd | Method | URI |
---|---|---|
Hämta de första tre entitetsposterna | GET |
[Portal URI]/_api/accounts?$select=name,revenue&$top=3
Exempel:https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Hämta konto med hjälp av konto-ID:
Åtgärd | Method | URI |
---|---|---|
Hämta specifik egenskap för en post | GET |
[Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name
Exempel:https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Exempelsvar
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Använda systemfrågealternativ
Alla systemfrågealternativ som du lägger till i URL-adressen för entitetsuppsättningen läggs till med syntaxen för frågesträngar. Det första läggs till efter [?] och följande frågealternativ avgränsas med hjälp av [&]. Alla frågealternativ är skiftlägeskänsliga enligt exemplet nedan:
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3
Exempel:https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Begäransspecifika egenskaper
Använd alternativet $select för att begränsa de egenskaper som returneras som i följande exempel:
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$top=3
Exempel:https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Viktigt!
Det här är bästa praxis för prestanda. Om inga egenskaper har angetts och du har konfigurerat Webapi/<table name>/fields
-webbplatsinställningens värde till *
returneras alla egenskaper med hjälp av $select
. Om inga egenskaper anges returneras ett fel.
Filtrera resultat
Använd alternativet $filter för att ange villkor för vilka rader som ska returneras.
Standardfilteroperatörer
Webb-API stöder standardoperatörerna för OData-filter som visas i följande tabell:
Operatör | Beskrivning | Exempel |
---|---|---|
Jämförelseoperatörer | ||
eq | Lika med | $filter=revenue eq 100000 |
ne | Inte lika med | $filter=revenue ne 100000 |
gt | Större än | $filter=revenue gt 100000 |
ge | Större än eller lika med | $filter=revenue ge 100000 |
lt | Mindre än | $filter=revenue lt 100000 |
le | Mindre än eller lika med | $filter=revenue le 100000 |
Logiska operatörer | ||
and | Logisk och | $filter=revenue lt 100000 och intäkter gt 2000 |
or | Logiskt eller | $filter=contains(name,'(sample)') eller contains(name,'test') |
not | Logisk negation | $filter=not contains(name,'sample') |
Gruppera operatörer | ||
( ) | Gruppering av prioritet | (contains(name,'sample') eller contains(name,'test')) och intäkter gt 5000 |
Standardfrågefunktioner
Webb-API stöder följande standardfunktioner för OData-strängfrågor:
Funktion | Exempel |
---|---|
innehåller | $filter=contains(name,'(sample)') |
endswith | $filter=endswith(name,'Inc.') |
startswith | $filter=startswith(name,'a') |
Dataverse frågefunktioner
Webb-API stöder frågefunktioner Dataverse för att filtrera resultat. För mer information, se Webb-API funktionsreferens för fråga.
Ordna resultat
Ange i vilken ordning objekt ska returneras med hjälp av alternativet $orderby. Använd suffixet asc eller desc för att specificera stigande eller fallande ordning. Standard är stigande om suffixet inte används. I följande exempel visas hur du hämtar namn och intäktsegenskaper för konton som har ordnats genom stigande omsättning och genom att fallande namn.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000
Exempel:https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Sammanställ och gruppera resultat
Genom att använda $apply, kan du sammanställa och gruppera dina data dynamiskt enligt följande exempel:
Scenarion | Exempel |
---|---|
Lista över unika statusar i frågan | accounts?$apply=groupby((statuscode)) |
Totalsumma för det uppskattade värdet | opportunities?$apply=aggregate(estimatedvalue med summa som total) |
Affärens genomsnittsstorlek utifrån beräknat värde och status | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue med medelvärde som averagevalue) |
Summan av beräknat värde utifrån status | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue med summa som total)) |
Total affärsmöjlighetsintäkt efter kontonamn | opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue med summa som total)) |
Primära kontaktpersonsnamn för konton i WA | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Datum och tid för senast skapade post | accounts?$apply=aggregate(createdon with max as lastCreate) |
Datum och tid för först skapade post | accounts?$apply=aggregate(createdon with min as firstCreate) |
Hämta antalet rader
Använd alternativet $count med ett värde av Sant för att inkludera antalet entiteter som matchar filtreringskriterierna upp till 5 000.
Method | URI |
---|---|
GET |
[Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true
Exempel:https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Exempelsvar
{
"@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"
}
]
}
Om du inte vill returnera några data förutom antalet kan du tillämpa $count på valfri samling för att endast få värdet.
Method | URI |
---|---|
GET |
[Portal URI/_api/accounts/$count
Exempel:https://contoso.powerappsportals.com/_api/accounts/$count |
Exempelsvar
3
Kolumnjämförelse
Följande exempel visar hur du jämför kolumner med hjälp av webb-API:
Method | URI |
---|---|
GET |
[Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname
Exempel:https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Hämta relaterade tabellposter med en fråga
Använd alternativet $expand i navigeringsegenskaperna för att kontrollera vilka data från relaterade entiteter som returneras.
Uppslag för associering av egenskap
Du måste använda Microsoft.Dynamics.CRM.associatednavigationproperty som uppslagsattribut när du använder frågealternativet $expand.
Om du vill fastställa Microsoft.Dynamics.CRM.associatednavigationproperty för ett attribut kan du göra följande http GET-begäran för kolumnen med hjälp av följande namnkonvention: _name_value.
I följande exempel kan vi fastställa den associerade navigeringsegenskapen för kolumnen Primär kontakt i tabellen Konto genom att ange kolumnnamnet primarycontactid genom att formatera namnet i förfrågan: _primarycontactid_value.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=_primarycontactid_value
Exempelhttps://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Exempelsvar
{
"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 från svaret att den associerade navigeringsegenskapen är primarycontactid. Den associerade navigeringsegenskapen kan vara uppslagskolumnens logiska namn eller schemanamn beroende på hur tabellen skapades.
Mer information finns i Hämta data om uppslagsegenskaper.
Hämta relaterade tabellposter genom att expandera enkelvärderade navigeringsegenskaper
Följande exempel visar hur du hämtar kontakten för alla kontoposter. För de relaterade kontaktposterna hämtar vi bara contactid och fullname.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)
Exempel:https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Exempelsvar
{
"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)"
}
}
]
}
Hämta relaterade tabeller genom att expandera samlingsvärderade navigeringsegenskaper
Om du expanderar parametrar för samlingsvärderad navigering för att hämta relaterade tabeller för entitetsuppsättningar, returernas endast en djupnivå om det finns data. Annars returneras en tom matris för samlingen.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)
Exempel:https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Hämta relaterade tabeller genom att expandera både enkelvärderade och samlingsvärderade navigeringsegenskaper
Följande exempel visar hur du kan expandera relaterade entiteter för entitetsuppsättningar med hjälp av både enkel- och samlingsvärderade navigeringsegenskaper. Du måste ange tabellrelationens namn i kodens syntax.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)
Exempel:https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Nästa steg
Portaler skriver, uppdaterar och tar bort åtgärder med hjälp av webb-API
Se även
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för