Skrive HTTP-anmodninger og håndtere fejl
Udgivet: januar 2017
Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Du interagerer med Web-API'en ved at oprette og sende HTTP-anmodninger. Du har brug at vide, hvordan du angiver de relevante HTTP-headere og håndterer eventuelle fejl, der er inkluderet i svaret.
Dette emne indeholder
URL-adressen til Web-API og versioner
HTTP-metoder
HTTP-headere
Identificere statuskoder
Fejlmeddelelse fra svaret under opdeling af tekst
URL-adressen til Web-API og versioner
Du skal oprette en URL-adresse ved hjælp af komponenterne i tabellen nedenfor for at få adgang til Web-API'en.
Element |
Beskrivelse |
---|---|
Protokol |
Den relevante protokol, enten https:// eller http://. |
Basis-URL-adresse |
Dette er den URL-adresse, du normalt bruger til at åbne webprogrammet.
|
Sti til Web-API |
Stien til Web-API'en er /api/data/. |
Version |
Versionen er angivet på denne måde: v[Major_version].[Minor_version][PatchVersion]/. Gyldige versioner til denne version er:
Det er ikke vigtigt, hvilken værdi du bruger i denne version, så længe du har anvendt de tilsvarende opdateringer eller servicepakker. Flere oplysninger: Versionskompatibilitet |
Ressource |
Navnet på det objekt, den funktion eller handling, du vil bruge. |
Den URL-adresse, du skal bruge, består med følgende dele: protokollen + basis-URL-adressen + stien til Web-API + version + ressource.
Versionskompatibilitet
Vi har anvendt en række additive ændringer i de enkelte opdateringer eller servicepakker i denne version. Når disse opdateringer er anvendt, har de føjet de samme funktioner til efterfølgende underordnede versioner. Derfor, hvis du kan bruge version 8.2, har version 8.1 og 8.0 de samme funktioner. Dette er muligt, fordi alle ændringerne er additive eller er fejlrettelser anvendt på de elementer, der er angivet i Microsoft Dynamics 365 Web API-begrænsninger. Der blev introduceret nogen vigtige ændringer.
Bemærk
Den næste overordnede version (v9) introducerer funktioner, som kun er tilgængelige i denne version. Efterfølgende underordnede versioner kan indeholde yderligere egenskaber, som ikke bliver tilbageført til tidligere underordnede versioner. Din kode, der er skrevet til v8.x, fungerer fortsat i v9.x, når du refererer til v8.2 i den URL-adresse, du bruger.
For version v8.x skal du bruge den nyeste version, du kan – opdateringer eller servicepakker inden for denne overordnede version indeholder ingen vigtige ændringer. Men det vil ændre sig i kommende versioner, hvor skal du være mere opmærksom på versionen af den service, du adresserer.
HTTP-metoder
HTTP-anmodninger kan anvende en række forskellige metoder. Når du bruger web-API'en, bruger du kun de metoder, der er angivet i følgende tabel.
Metode |
Brug |
---|---|
GET |
Bruges til hentning af data, herunder kald af funktioner. Den forventede statuskode for en vellykket hentning er 200 OK. |
POST |
Bruges til oprettelse af objekter eller kald af handlinger. |
PATCH |
Bruges til opdatering af objekter eller udførelse af upsert-handlinger. |
DELETE |
Bruges til sletning af objekter eller individuelle egenskaber for objekter. |
PUT |
Bruges i få situationer til opdatering af individuelle egenskaber for objekter. Denne metode kan kun anbefales til opdatering af de færreste objekter. Du skal bruge metoden, når du opdaterer modelobjekter. |
HTTP-headere
Selvom OData-protokollen giver mulighed for både JSON- og ATOM-format, understøtter web-API'en kun JSON. Derfor kan følgende headere anvendes.
Enhver anmodning skal indeholde Accept-headerværdien for application/json, selv når der ikke forventes en svartekst. Eventuelle fejl, der returneres i svaret, returneres som JSON. Mens koden skulle kunne fungere, selvom denne header er ikke inkluderet, anbefaler vi at inkludere den som best practice
Den aktuelle OData-version er 4.0, men fremtidige versioner kan indeholde ny funktionalitet. For at sikre, at der ikke er tvivl om den OData-version, der vil blive anvendt på din kode i fremtiden, skal du altid medtage en eksplicit erklæring af den aktuelle OData-version og den højeste version, der kan anvendes i din kode. Brug både OData-Version- og OData-MaxVersion-headere, som er indstillet til en 4.0-værdi.
Alle HTTP-headere skal mindst inkludere følgende headere.
Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Enhver anmodning, der omfatter JSON-data i anmodningsteksten skal inkludere en Content-Type-header med en application/json-værdi.
Content-Type: application/json
Du kan bruge flere headere til at aktivere bestemte funktioner.
Hvis du vil returnere data i forbindelse med oprettelse (POST) eller opdatering (PATCH) for objekter, skal du medtage return=representation-indstillingen. Når denne indstilling er anvendt til en POST-anmodning, vil et vellykket svar have statussen 201 (Created). For en PATCH-anmodning vil et vellykket svar have statussen 200 (OK). Uden denne indstilling vil begge handlinger returnere statussen 204 (No Content) for at afspejle, at ingen data returneres som standard i svarets brødtekst.
Bemærk
Denne funktion blev tilføjet med December 2016 – opdatering til Dynamics 365 (online og det lokale miljø).
Hvis du vil returnere formaterede værdier med en forespørgsel, skal du inkludere odata.include-annotations-præferencen indstillet til Microsoft.Dynamics.CRM.formattedvalue ved hjælp af Prefer-headeren.Flere oplysninger:Medtage formaterede værdier
Du kan også bruge Prefer-headeren med indstillingen odata.maxpagesize for at angive, hvor mange sider du vil returnere.Flere oplysninger:Angiv antallet af objekter, der skal returneres i en side
For at efterligne en anden bruger, når kaldende har rettigheder til at gøre dette, skal du tilføje MSCRMCallerID-headeren med systemuserid-værdien for den bruger, der skal efterlignes.Flere oplysninger:Efterligne en anden bruger ved hjælp af Web-API'en.
Hvis du vil anvende optimistisk samtidighed, kan du anvende If-Match-headeren med en Etag-værdi.Flere oplysninger:Anvend optimistisk samtidighed.
Hvis du vil aktivere registrering af dubletter for en POST-anmodning, du kan bruge MSCRM.SuppressDuplicateDetection: false-headeren.Flere oplysninger:244259ca-2fbc-4fd4-9a74-6166e6683355#bkmk_SuppressDuplicateDetection
Hvis du vil styre, om en upsert-handling skal oprette eller opdatere et objekt, kan du også bruge If-Match- og If-None-Match-headeren.Flere oplysninger:Brug af upsert på et objekt.
Når du udfører batchhandlinger, skal du anvende en række forskellige headere i anmodningen og i hver del, der sendes i brødteksten.Flere oplysninger:Udføre batchhandlinger ved hjælp af Web-API.
Identificere statuskoder
Uanset om en HTTP-anmodning lykkes eller mislykkes, vil svaret indeholde en statuskode. Statuskoder, som returneres af Microsoft Dynamics 365-Web-API'en omfatter følgende.
Kode |
Beskrivelse |
Type |
---|---|---|
200 OK |
Forvent dette, når din handling returnerer data i svarteksten. |
Fuldført |
201 Created |
Du kan forvente dette, når objektets POST-handling lykkes, og du har angivet return-representation-indstillingen i din anmodning. Bemærk Denne funktion blev tilføjet med December 2016 – opdatering til Dynamics 365 (online og det lokale miljø). |
Fuldført |
204 No Content |
Forvent dette, når din handling lykkes, men ikke returnerer data i svarteksten. |
Fuldført |
304 Not Modified |
Forvent dette, når du tester, om et objekt er blevet ændret, siden det sidst blev hentet.Flere oplysninger:Betingede hentninger |
Omdirigering |
403 Forbidden |
Forvent dette for følgende typer af fejl:
|
Klientfejl |
401 Unauthorized |
Forvent dette for følgende typer af fejl:
|
Klientfejl |
413 Payload Too Large |
Forvent dette, når længden på anmodningen er for stor. |
Klientfejl |
400 BadRequest |
Forvent dette, når et argument er ugyldigt. |
Klientfejl |
404 Not Found |
Forvent dette, når ressourcen ikke findes. |
Klientfejl |
405 Method Not Allowed |
Denne fejl opstår ved forkerte metode- og ressourcekombinationer. For eksempel kan du ikke bruge DELETE eller PATCH på en samling af objekter. Forvent dette for følgende typer af fejl:
|
Klientfejl |
412 Precondition Failed |
Forvent dette for følgende typer af fejl:
|
Klientfejl |
500 Internal Server Error |
Forvent dette, når en POST-anmodning om at oprette et objekt muliggør registrering af dubletter og det objekt, der skal oprettes, er en dublet.Flere oplysninger:244259ca-2fbc-4fd4-9a74-6166e6683355#bkmk_SuppressDuplicateDetection |
Serverfejl |
501 Not Implemented |
Forvent dette, når der er anmodet om handlinger, som ikke er blevet implementeret. |
Serverfejl |
503 Service Unavailable |
Forvent dette, når web API-tjenesten ikke er tilgængelig. |
Serverfejl |
Fejlmeddelelse fra svaret under opdeling af tekst
Oplysninger om fejl er medtaget som JSON i svaret. Fejlmeddelelser vises i dette format.
{ "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>" } } }
Se også
Udføre operationer ved hjælp af web-API
Forespørg på data ved hjælp af Web-API'en
Oprette et objekt ved hjælp af Web-API
Hente et objekt ved hjælp af web-API'et
Opdatere og slette objekter ved hjælp af web-API'et
Tilknytte og fjerne tilknytningen af objekter ved hjælp af web-API'et
Bruge Web-API-funktioner
Brug Web API-handlinger
Udføre batchhandlinger ved hjælp af Web-API
Efterligne en anden bruger ved hjælp af Web-API'en
Udfør betingede operationer ved hjælp af web-API
Microsoft Dynamics 365
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret