HTTP-Anforderungen verfassen und Fehler beheben
Veröffentlicht: Januar 2017
Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Sie interagieren mit dem Web API, indem Sie HTTP-Anforderungen erstellen und senden. Sie müssen wissen, wie die entsprechenden HTTP-Kopfzeilen festgelegt werden und auf mögliche Fehler in der Antwort reagieren.
In diesem Thema
Web-API-URL und Versionen
HTTP-Methoden
HTTP-Kopfzeilen
Ermitteln von Statuscodes
Analysefehler von der Antwort
Web-API-URL und Versionen
Um auf das Web-API zuzugreifen müssen Sie eine URL mithilfe von Komponenten der folgenden Tabelle verfassen.
Element |
Beschreibung |
---|---|
Protokoll |
Das entsprechende Protokoll, entweder https:// oder http://. |
Basis-URL |
Dies ist die URL, die Sie üblicherweise verwenden, um die Webanwendung zu öffnen.
|
Web-API-Pfad |
Der Pfad zur Web-API ist /api/data/. |
Version |
Die Version wird auf folgende Weise ausgedrückt: v[Major_version].[Minor_version][PatchVersion]/. Gültige Versionen für diese Version sind:
Der bestimmte Wert, den Sie verwenden, ist bei dieser Version nicht wichtig, wenn Sie die entsprechenden Updates oder Service Packs angewendet haben. Weitere Informationen: Versionskompatibilität |
Ressource |
Der Name der Entität, Funktion oder Aktionen, die Sie verwenden möchten. |
Die URL, die Sie verwenden, wird mit diesen Teilen zusammengesetzt: Protokoll + Basis-URL + Web-API-Pfad + Version + Ressource.
Versionskompatibilität
In dieser Version haben wir einige Zusatzänderungen mit jedem Update oder Service Pack angewendet. Wenn die Updates übernommen werden, werden dieselben Funktionen den folgenden Nebenversionen hinzugefügt. Wenn Sie also Version 8.2 verwenden können, dann haben Version 8.1 und 8,0 dieselben Features. Dies ist möglich, da alle Änderungen additiv bzw. Programmfehlerbehebungen waren, welche die Elemente betreffen, die in Microsoft Dynamics 365-Web-API-Einschränkungen aufgeführt sind. Es wurden keine grundlegenden Änderungen eingeführt.
Hinweis
Mit der folgenden Hauptversion (v9) werden Funktionen eingeführt, die nur für diese Version zur Verfügung stehen. Nachfolgende Nebenversionen bieten ggf. weitere Funktionen, die nicht auf die früheren Nebenversionen zurückübertragen werden. Ihr Code, der für v8.x geschrieben ist, funktioniert weiterhin in v9.x, wenn Sie in der URL, die Sie verwenden, auf v8.2 verweisen.
Für die v8.x-Version verwenden Sie die aktuellste Version, die Sie haben und von der Sie wissen, dass Updates und Service Packs in dieser Hauptversion keine wichtigen Änderungen enthalten. Dies wird jedoch in zukünftigen Versionen anders sein, in denen Sie mehr Aufmerksamkeit auf die Version des Services lenken müssen, auf den Sie sich beziehen.
HTTP-Methoden
HTTP-Anforderungen können zahlreiche verschiedene Methoden anwenden. Wenn Sie die Internet-API verwenden, werden Sie nur die in der folgenden Tabelle aufgeführten Methoden anwenden.
Methode |
Verwendung |
---|---|
GET |
Wird verwendet, wenn Daten inkl. aufrufender Funktionen abgerufen werden. Der erwartete Statuscode für einen erfolgreiches Abrufen ist 200 OK. |
POST |
Wird verwendet wenn Entitäten erstellt oder Aktionen aufgerufen werden. |
PATCH |
Wird verwendet, wenn Entitäten aktualisiert werden oder Upsert Vorgänge ausgeführt werden. |
DELETE |
Wir verwendet, wenn Entitäten oder Einzelpersoneneigenschaften gelöscht werden. |
PUT |
Verwendung in bestimmten Fällen zur Aktualisierung einzelner Eigenschaften von Entitäten. Diese Methode wird nicht empfohlen, wenn die meisten Entitäten aktualisiert werden. Verwenden Sie diese Option, wenn Sie Entitäten vorbildliche aktualisieren. |
HTTP-Kopfzeilen
Obwohl das OData-Protokoll sowohl das Format JSON als auch ATOM zulässt, unzerstützt die Web API nur JSON. Deshalb können folgende Kopfzeilen angewandt werden.
Jede Anfrage sollte den Accept-Kopfzeilenwert von application/json beinhalten, auch wenn keine Antwort erwartet wird. Jeder Fehler, der in der Antwort zurückgegeben wurde, wird zurückgegeben als JSON. Auch wenn Ihr Code verwendet werden kann, wenn die Kopfzeile nicht enthalten ist, sollten Sie sie im Rahmen der bewährten Methoden einschließen.
Die aktuelle OData-Version ist 4.0, aber zukünftige Versionen werden die Möglichkeit bieten neue Funktionen zu verwenden. Um sicherzustellen dass es keine Verwechselung der OData-Version für den Code gibt, sollten Sie immer eine die aktuellen OData-Version sowie die neustmögliche Version für den Code angeben. Verwenden Sie OData-Version und OData-MaxVersion Kopfzeilen, um einen Wert auf 4.0 zu setzen.
Alle HTTP-Kopfzeilen sollten folgende mindestens folgende Kopfzeilen enthalten.
Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Jede Anfrage, die JSON-Daten im Anforderungstext enthält, muss eine Content-Type-Kopfzeile mit einem Wert für application/json beinhalten.
Content-Type: application/json
Sie können zusätzliche Kopfzeilen verwenden, um bestimmte Möglichkeiten zu aktivieren.
Um Daten für Erstellen- (POST) oder Aktualisieren-Vorgänge (PATCH) für Entitäten zurückzugeben, nutzen Sie die return=representation-Einstellung. Wenn diese Einstellung auf eine POST-Anfrage angewendet wurde, hat eine erfolgreiche Antwort den Status 201 (Created). Eine PATCH-Anfrage hat eine erfolgreiche Antwort den Status 200 (OK). Ohne diese angewendete Einstellung haben beide Vorgänge Status 204 (No Content), um anzuzeigen, dass standardmäßig keine Daten im Textteil der Antwort zurückgegeben werden.
Hinweis
Diese Funktion wurde mit Update für Dynamics 365 (online und lokal), Dezember 2016 hinzugefügt.
Zum über eine Abfrage formatierte Werte zurückzugeben, beziehen Sie die odata.include-annotations-Einstellung mit dem Wert Microsoft.Dynamics.CRM.formattedvalue über die Kopfzeile ein.Weitere Informationen:Formatierte Werte einschließen
Sie können die Prefer-Kopfzeile mit der odata.maxpagesize-Option auch dazu verwenden, anzugeben, wie viele Seiten Sie zurückgeben möchten.Weitere Informationen:Geben Sie die Anzahl der in einer Seite zurückzugebenden Entitäten an
Um den Kontaxt eines andern Benutzers zu nutzen wenn der Aufrufer die entsprechenden Berechtigungen hat, fügen Sie die MSCRMCallerID-Kopfzeile mit dem systemuserid-Wert des Benutzers hinzu.Weitere Informationen:Annehmen eines anderen Benutzerkontos mit Web API.
Um die optimistische Parallelität anzuwenden, können Sie die If-Match-Header mit einem Wert Etag anwenden.Weitere Informationen:Optimistische Parallelität anwenden.
Um die Duplikaterkennung für eine POST-Anforderung zu aktivieren, können Sie den MSCRM.SuppressDuplicateDetection: false-Header verwenden.Weitere Informationen:244259ca-2fbc-4fd4-9a74-6166e6683355#bkmk_SuppressDuplicateDetection
Um zu steuern, ob ein Upsert-Vorgang tatsächlich eine Entität erstellt oder aktualisiert, können Sie die Kopfzeilen If-Match and If-None-Match verwenden.Weitere Informationen:Upsert einer Entität.
Wenn Sie Batchbetriebe ausführen, müssen Sie in der Anforderung verschiedene Kopfzeilen anwenden sowie für jeden Teil, in dem der Text gesendet wird.Weitere Informationen:Ausführen von Batchbetrieben mithilfe der Web-API.
Ermitteln von Statuscodes
Egal, ob eine HTTP-Anforderung erfolgreich ist oder fehlschlägt, die Antwort umfasst einen Statuscode. Die Statuscodes, die durch Microsoft Dynamics 365 Web API zurückgegeben werden umfassen Folgendes.
Code |
Beschreibung |
Typ |
---|---|---|
200 OK |
Dies annehmen, wenn durch den Vorgang Daten im Antworttext zurückgegeben werden. |
Erfolgreich |
201 Created |
Erwarten Sie dies, wenn Ihr Entitäts-POST Vorgang erfolgreich ist und Sie die return-representation Einstellung in der Anfrage angegeben haben. Hinweis Diese Funktion wurde mit Update für Dynamics 365 (online und lokal), Dezember 2016 hinzugefügt. |
Erfolgreich |
204 No Content |
Dies annehmen, wenn der Vorgang erfolgreich durchgeführt wird, jedoch keine Daten im Antworttext zurückgegeben werden. |
Erfolgreich |
304 Not Modified |
Dies beim Testen, ob eine Entität seit dem letzten Abruf geändert wurde, annehmen.Weitere Informationen:Bedingte Abrufe |
Umleitung |
403 Forbidden |
Folgendes für die folgenden Fehlertypen annehmen:
|
Client-Fehler |
401 Unauthorized |
Folgendes für die folgenden Fehlertypen annehmen:
|
Client-Fehler |
413 Payload Too Large |
Dies annehmen, wenn die Anforderung zu lang ist. |
Client-Fehler |
400 BadRequest |
Dies annehmen, wenn ein Argument ungültig ist. |
Client-Fehler |
404 Not Found |
Dies annehmen, wenn die Ressource nicht vorhanden ist. |
Client-Fehler |
405 Method Not Allowed |
Dieser Fehler tritt für falsche Methoden und Ressourcenkombinationen auf. Beispielsweise können Sie weder DELETE noch PATCH bei einer Sammlung von Entitäten verwenden. Folgendes für die folgenden Fehlertypen annehmen:
|
Client-Fehler |
412 Precondition Failed |
Folgendes für die folgenden Fehlertypen annehmen:
|
Client-Fehler |
500 Internal Server Error |
Erwarten Sie dies, wenn eine POST-Anforderung zum Erstellen einer Entität die Duplikaterkennung aktiviert und die zu erstellende Entität ein Duplikat wäre.Weitere Informationen:244259ca-2fbc-4fd4-9a74-6166e6683355#bkmk_SuppressDuplicateDetection |
Serverfehler |
501 Not Implemented |
Dies annehmen, wenn ein angeforderter Vorgang nicht implementiert wird. |
Serverfehler |
503 Service Unavailable |
Dies annehmen, wenn der Web-API-Service nicht verfügbar ist. |
Serverfehler |
Analysefehler von der Antwort
Details zu Fehlern sind als JSON in der Antwort enthalten. Fehler werden in diesem Format angezeigt.
{ "error":{ "code": "
<This code is not related to the http status code and is frequently empty>", "message": "
<A message describing the error>", "innererror": { "message": "
<A message describing the error, this is frequently the same as the outer message>", "type": "Microsoft.Crm.CrmHttpException", "stacktrace": "
<Details from the server about where the error occurred>" } } }
Siehe auch
Vorgänge mithilfe der Web-API ausführen
Datenabfrage mit Web-API
Erstellen einer Entität mithilfe des Web-API
Abrufen einer Entität mithilfe des Web-API
Entitäten aktualisieren und löschen mithilfe der Web API
Entitäten zuordnen und Zuordnungen aufheben mithilfe der Web API
Nutzen von Web-API-Funktionen
Nutzen von Web-API-Aktionen
Ausführen von Batchbetrieben mithilfe der Web-API
Annehmen eines anderen Benutzerkontos mit Web API
Bedingte Vorgänge mithilfe der Web-API ausführen
Microsoft Dynamics 365
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright