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

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

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

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)

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

Siehe auch