Daten über die Portale-Web-API abfragen
Sie können verfügbare Web-API Vorgänge in Power Pages verwenden. Web-API-Vorgänge bestehen aus HTTP-Anforderungen und -Antworten. Dieser Artikel enthält Beispiele für Lesevorgänge, Methoden, URI und JSON-Beispiele, die Sie in der HTTP-Anforderung verwenden können.
Anforderungen
Ihre Websiteversion muss 9.4.1.x oder höher sein.
Aktivieren Sie Tabelle und Feld für Web-API-Vorgänge. Weitere Informationen: Site-Einstellungen für die Web-API
Das Portale-Web-API greift auf Tabellendatensätze zu und folgt den Tabellenberechtigungen, die Benutzern über die zugehörigen Webrollen erteilt werden. Stellen Sie sicher, dass Sie die richtigen Berechtigungen für Tabellen konfigurieren. Weitere Informationen: Webrollen erstellen
Anmerkung
Bei Bezugnahme auf Dataverse-Tabellen über die Web-API des Portals müssen Sie beispielsweise EntitySetName verwenden, um auf die Konto-Tabelle zuzugreifen. Der Codesyntax verwendet EntitySetName von Konten.
Datensätze abfragen
Das folgende Beispiel fragt Datensätze von Konten ab:
Vorgang | Method | URI |
---|---|---|
Tabellendatensätze abrufen | GET |
[Portal URI]/_api/accounts
Beispiel: https://contoso.powerappsportals.com/_api/accounts |
Beispielantwort
{
"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"
}
]
}
Verwenden Sie die Systemabfrageoptionen $select und $top, um die Eigenschaft name für die ersten drei Konten zurückzugeben:
Vorgang | Method | URI |
---|---|---|
Abruf der ersten drei Datensätze einer Entität | GET |
[Portal URI]/_api/accounts?$select=name,revenue&$top=3
Beispiel: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Konto mit Hilfe der Konto-ID abrufen:
Vorgang | Method | URI |
---|---|---|
Bestimmte Eigenschaft eines Datensatzes abrufen | GET |
[Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name
Beispiel: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Beispielantwort
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Verwenden von Systemabfrageoptionen
Jede der Systemabfrageoptionen, die Sie zur URI für den Entitätssatz anfügen, wird mithilfe der Syntax für Abfragezeichenfolgen hinzugefügt. Die erste wird nach [?] angehängt und die folgenden Abfrageoptionen werden mit [&] getrennt. Bei allen Abfrageoptionen wird zwischen Groß- und Kleinschreibung unterschieden, wie im folgenden Beispiel gezeigt:
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3
Beispiel: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Anforderungsspezifische Eigenschaften
Verwenden Sie die Systemabfrageoption $select, um die zurückgegebenen Eigenschaften einzuschränken, wie im folgenden Beispiel gezeigt:
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$top=3
Beispiel: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Wichtig
Dies ist eine bewährte Methode für die Leistung. Wenn keine Eigenschaften festgelegt sind und Sie den Wert für die Site-Einstellung Webapi/<table name>/fields
auf *
festgelegt haben, werden alle Eigenschaften mit $select
zurückgegeben. Wenn keine Eigenschaften angegeben sind, wird ein Fehler zurückgegeben.
Ergebnisse filtern
Verwenden Sie die Systemabfrageoption $filter, um Kriterien festzulegen, nach denen Zeilen zurückgegeben werden sollen.
Standardfilteroperatoren
Die Web-API unterstützt die in der folgenden Tabelle aufgeführten Standard-OData-Filteroperatoren:
Operator | Beschreibung | Beispiel |
---|---|---|
Vergleichsoperatoren | ||
eq | Equal | $filter=revenue eq 100000 |
ne | Ungleich | $filter=revenue ne 100000 |
gt | Größer als | $filter=revenue gt 100000 |
ge | Größer als oder gleich | $filter=revenue ge 100000 |
lt | Kleiner als | $filter=revenue lt 100000 |
le | Kleiner oder gleich | $filter=revenue le 100000 |
Logische Operatoren | ||
and | Logisch und | $filter=revenue lt 100000 and revenue gt 2000 |
or | Logisch oder | $filter=contains(name,'(sample)') or contains(name,'test') |
not | Logische Negation | $filter=not contains(name,'sample') |
Gruppieren von Operatoren | ||
( ) | Rangfolgengruppierung | (contains(name,'sample') or contains(name,'test')) and revenue gt 5000 |
Standardabfragenfunktionen
Die Web API unterstützt diese Standardfunktionen der OData-Zeichenkettenabfrage:
Funktion | Beispiel |
---|---|
enthält | $filter=contains(name,'(sample)') |
endswith | $filter=endswith(name,'Inc.') |
startswith | $filter=startswith(name,'a') |
Dataverse-Abfragefunktionen
Die Web-API unterstützt Dataverse Abfragefunktionen zum Filtern von Ergebnissen. Weitere Informationen finden Sie unter Web API Abfrage Funktionsreferenz.
Reihenfolge von Ergebnissen
Geben Sie die Reihenfolge an, in der die Artikel zurückgegeben werden, indem Sie die Systemabfrageoption $orderby verwenden. Verwenden Sie das Suffix asc oder desc, um eine aufsteigende bzw. absteigende Reihenfolge anzugeben. Die Standardeinstellung ist aufsteigend, wenn das Suffix nicht angewendet wird. Das folgende Beispiel zeigt das Abrufen der Namens- und Umsatzeigenschaften von Firmen, sortiert nach aufsteigendem Umsatz und absteigendem Namen.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000
Beispiel: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Gesamt- und Gruppierungsergebnisse
Durch die Verwendung von $apply, können Sie Ihre Daten dynamisch aggregieren und gruppieren, wie in den folgenden Beispielen gezeigt:
Szenarien | Beispiel |
---|---|
Liste mit eindeutigen Status in der Abfrage | accounts?$apply=groupby((statuscode)) |
Gesamtsumme des Schätzwerts | opportunities?$apply=aggregate(estimatedvalue with sum as total) |
Durchschnittliche Größe des Geschäftsabschlusses auf Grundlage des Schätzwert und des Status | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) |
Summe der Schätzwerte basierend auf dem Status | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total)) |
Verkaufschancengesamtumsatz nach Firmenname | opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total)) |
Primäre Kontaktnamen für Konten in 'WA'. | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Datum und Uhrzeit für zuletzt erstellten Datensatz | accounts?$apply=aggregate(createdon with max as lastCreate) |
Datum und Uhrzeit für zuerst erstellten Datensatz | accounts?$apply=aggregate(createdon with min as firstCreate) |
Ruft eine Anzahl von Zeilen ab
Verwenden Sie die Systemabfrageoption $count mit einem Wert von wahr, um eine Zählung der Entitäten, die den Filterkriterien entsprechen, bis zu 5.000 einzuschließen.
Method | URI |
---|---|
GET |
[Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true
Beispiel: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Beispielantwort
{
"@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"
}
]
}
Wenn Sie außer der Anzahl keine weiteren Daten zurückgeben möchten, können Sie $count auf eine beliebige Sammlung anwenden, um nur den Wert zu erhalten.
Method | URI |
---|---|
GET |
[Portal URI/_api/accounts/$count
Beispiel: https://contoso.powerappsportals.com/_api/accounts/$count |
Beispielantwort
3
Vergleich von Spalten
Das folgende Beispiel zeigt, wie Spalten mit der Web-API verglichen werden:
Method | URI |
---|---|
ABRUFEN |
[Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname
Beispiel: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Abrufen von verknüpften Tabellendatensätzen mit einer Abfrage
Verwenden Sie die Systemabfrageoption $expand in den Navigationseigenschaften, um zu steuern, welche Daten von verwandten Entitäten zurückgegeben werden.
Der Navigationseigenschaft zugehörige Suchansicht
Sie müssen die Microsoft.Dynamics.CRM.associatednavigationproperty als Suchattribut verwenden, wenn Sie die Abfrageoption $expand nutzen.
Um das Microsoft.Dynamics.CRM.associatednavigationproperty-Element eines Attributs zu bestimmen, können Sie die folgende HTTP-GET-Anfrage für die Spalte unter Verwendung der folgenden Namenskonvention durchführen: _name_value.
Im folgenden Beispiel können wir die zugehörige Navigationseigenschaft der Spalte Hauptansprechpartner der Konto-Tabelle durch Angabe des Spaltennamens primarycontactid ermitteln, indem wir den Namen in der Anfrage formatieren: _primarycontactid_value.
Method | URI |
---|---|
ABRUFEN |
[Portal URI]/_api/accounts?$select=_primarycontactid_value
Beispiel https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Beispielantwort
{
"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"
}
]
}
Wir sehen aus der Antwort, dass die zugehörige Navigationseigenschaft primarycontactid ist. Die zugeordnete Navigationseigenschaft kann entweder der logische Name oder Schemaname der Nachschlagespalte sein, je nachdem, wie die Tabelle erstellt wurde.
Weitere Informationen finden Sie unter Daten zu Sucheigenschaften abrufen
Abrufen verwandter Tabellendatensätze durch Erweitern von einfach bewerteten Navigationseigenschaften
Das folgende Beispiel zeigt, wie Sie den Kontakt für alle Datensätze eines Kontos abrufen können. Für die zugehörigen Datensätze der Kontakte rufen wir nur die Kontaktnummer und Vollname ab.
Method | URI |
---|---|
ABRUFEN |
[Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)
Beispiel: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Beispielantwort
{
"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)"
}
}
]
}
Abrufen verwandter Tabellen durch Erweitern von sammlungsbewerteten Navigationseigenschaften
Wenn Sie die Navigationsparameter mit Sammlungswert erweitern, um verwandte Tabellen für Entitäten abzurufen, wird nur eine Tiefenebene zurückgegeben, wenn Daten vorhanden sind. Andernfalls gibt die Sammlung ein leeres Array zurück.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)
Beispiel: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Abrufen verwandter Tabellen durch Erweitern sowohl von Single-Value- als auch von Collection-Value-Navigationseigenschaften
Das folgende Beispiel zeigt, wie Sie verknüpfte Entitäten für Entity-Sets mit Hilfe von ein- und sammlungsbewerteten Navigationseigenschaften erweitern können. Sie müssen den Tabellenbeziehungsnamen in der Syntax Ihres Codes angeben.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)
Beispiel: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Nächster Schritt
Portale Schreib-, Aktualisierungs- und Löschvorgänge über die Web-API