Freigeben über


Beispiel bedingter Web-API-Operationen (C#)

In diesem .NET 6.0-Beispiel wird veranschaulicht, wie allgemeine Datenvorgänge mithilfe der Dataverse-Web-API ausgeführt werden.

In diesem Beispiel wird der allgemeine Helfercode in der WebAPIService-Klassenbibliothek (C#) verwendet.

Anmerkung

Dieses Beispiel implementiert die Dataverse-Vorgänge sowie die Konsolenausgabe, die unter Web-API-Bedingte Vorgänge-Beispiel aufgeführt sind, und nutzt bekannte C#-Konstrukte, die in Web-API-Beispiele (C#) aufgeführt sind.

Anforderungen

Diese Anforderungen müssen zum Erstellen und Ausführen dieses Beispiels erfüllt sein:

  • Microsoft Visual Studio 2022.
  • Zugriff auf Dataverse mit Rechten, um Datenvorgänge auszuführen.

Wie man dieses Beispiel ausführt

  1. Klonen Sie das Repository Power Apps-Samples, oder laden Sie es herunter.

  2. Suchen Sie den Ordner /dataverse/webapi/C#-NETx/ConditionalOperations/.

  3. Öffnen der Datei ConditionalOperations.sln mit Visual Studio 2022

  4. Bearbeiten Sie die appsettings.json-Datei, um die folgenden Eigenschaftswerte festzulegen:

    Eigenschaften Anweisungen
    Url Die Url für Ihre Umgebung. Ersetzen Sie den https://yourorg.api.crm.dynamics.com-Wert des Platzhalters durch den Wert für Ihre Umgebung. Gehen Sie zu Entwicklerressourcen anzeigen, um die URL für Ihre Umgebung zu finden.
    UserPrincipalName Ersetzen Sie den you@yourorg.onmicrosoft.com-Wert des Platzhalters durch den UPN-Wert, den Sie für den Zugriff auf die Umgebung verwenden.
    Password Ersetzen Sie den yourPassword-Wert des Platzhalters durch das von Ihnen verwendete Kennwort.
  5. Die Datei appsettings.json speichern

  6. Drücken Sie F5, um das Beispiel auszuführen.

Code

Der Code für dieses Beispiel ist hier: PowerApps-Beispiele/dataverse/webapi/C#-NETx/ConditionalOperations/Program.cs

Veranschaulichung

Dieses Beispiel umfasst vier Regionen:

Abschnitt 0: Beispielaufzeichnungen erstellen

Vorgänge:

  • Einzelkonto-Datensatz erstellen.
  • Ruft den Datensatz ab und speichert den ETag-Wert als initialAcctETagVal.

Abschnitt 1: Conditional GET

Vorgänge:

  1. Versucht, den Datensatz abzurufen, durch Festlegen des If-None-Match-Headers mit dem initialAcctETagVal-Wert.

    Anfrage schlägt wie erwartet mit 304 NotModified fehl.

  2. Aktualisieren Sie den Spaltenwert des Datensatzes telephone1.

  3. Versuchen Sie erneut, den Datensatz abzurufen, indem Sie den If-None-Match-Header mit dem initialAcctETagVal-Wert festlegen.

    Die Anforderung ist erfolgreich, da der anfängliche ETag-Wert nicht mehr übereinstimmt.

  4. Speichern Sie den neuen ETag-Wert als updatedAcctETagVal.

Abschnitt 2: Optimistische Parallelität beim Löschen und Aktualisieren

Vorgänge:

  1. Versuchen Sie, die ursprüngliche Kontoeinstellung zu löschen, indem Sie den If-Match-Header mit dem initialAcctETagVal-Wert festlegen.

    Anfrage schlägt wie erwartet mit 412 PreconditionFailed fehl.

  2. Versuchen Sie, die ursprüngliche Kontoeinstellung zu aktualisieren, indem der If-Match-Header mit dem initialAcctETagVal-Wert festgelegt wird.

    Anfrage schlägt wie erwartet mit 412 PreconditionFailed fehl.

  3. Versuchen Sie, die ursprüngliche Kontoeinstellung zu aktualisieren, indem der If-Match-Header mit dem updatedAcctETagVal-Wert festgelegt wird.

    Die Anforderung ist erfolgreich, da der ETag-Wert mit dem aktuellen Wert für den Datensatz übereinstimmt.

Abschnitt 3: Beispielaufzeichnungen löschen

Vorgänge: Ein Verweis auf jeden in diesem Beispiel erstellten Datensatz wurde einer Liste hinzugefügt, während sie erstellt wurde. Dieser Abschnitt sendet eine $batch-Aufforderung zum Löschen des Datensatzes.

Bereinigung

Standardmäßig löscht dieses Beispiel alle darin erstellten Datensätze. Wenn Sie die erstellten Datensätze nach Abschluss des Beispiels anzeigen möchten, ändern Sie die deleteCreatedRecords-Variable in false. Sie werden dann aufgefordert, zu entscheiden, ob Sie die Datensätze löschen möchten.

Siehe auch

Bedingte Vorgänge mithilfe der Web-API ausführen
Verwenden der Dataverse-Web-API
WebAPIService-Klassenbibliothek (C#)
Web-API-Beispiele
Beispiel grundlegender Web-API-Operationen (C#)
Beispiel fürWeb API-Abfragedaten (C#)
Beispiel für Internet-API-Funktionen- und Aktionen (C#)
Beispiel für Web-API-Tabellen-Schemaoperationen (C#)
Web-API WebApiService-Beispiel für parallele Operationen (C#)
Beispiel für parallele Web-API-Vorgänge mit TPL Dataflow-Komponenten (C#)