Forespørg på data ved hjælp af Web-API'en
Udgivet: januar 2017
Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Hvis du vil hente data til et objektsæt, skal du benytte en GET-anmodning. Når du henter data, kan du anvende forespørgselsindstillinger for at angive kriterier for de data, du ønsker, og de objektegenskaber, der skal returneres.
Dette emne indeholder
Grundlæggende forespørgselseksempel
Grænser for antallet af returnerede objekter
Angiv antallet af objekter, der skal returneres i en side
Anvende systemforespørgselsindstillinger
Anmode om specifikke egenskaber
Filtrer resultater
Placering af resultater i rækkefølge
Brug parameteraliaser med systemforespørgselsindstillinger
Begrænse resultaterne
Hente en optælling af objekter
Medtage formaterede værdier
Hente data om egenskaber for opslag
Filtrer poster, der er baseret på navigationsegenskaben enkeltværdi
Hente relaterede objekter ved at udvide navigationsegenskaber
Grundlæggende forespørgselseksempel
Dette eksempel forespørger på accounts-objektsættet og bruger systemforespørgselsindstillingerne $select og $top til at returnere egenskaben name for de første tre konti:
Anmodning
GET cc_WebAPI_ServiceURI/accounts?$select=name&$top=3 HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Response
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": "cc_WebAPI_ServiceURI/$metadata#accounts(name)", "value": [ { "@odata.etag": "W/\"501097\"", "name": "Fourth Coffee (sample)", "accountid": "89390c24-9c72-e511-80d4-00155d2a68d1" }, { "@odata.etag": "W/\"501098\"", "name": "Litware, Inc. (sample)", "accountid": "8b390c24-9c72-e511-80d4-00155d2a68d1" }, { "@odata.etag": "W/\"501099\"", "name": "Adventure Works (sample)", "accountid": "8d390c24-9c72-e511-80d4-00155d2a68d1" } ] }
Grænser for antallet af returnerede objekter
Medmindre du angiver en mindre sidestørrelse, returneres højst 5000 objekter for hver anmodning. Hvis der er flere objekter, der opfylder forespørgselsfilterkriterierne, returneres en @odata.nextLink-egenskab med resultaterne. Brug værdien af den @odata.nextLink-egenskaben med en ny GET-anmodning for at vende tilbage til den næste side med data.
Bemærk
Forespørgsler om modelobjekter er ikke begrænset eller sideinddelt.Flere oplysninger:Forespørg på metadata ved hjælp af Web-API'en
Angiv antallet af objekter, der skal returneres i en side
Brug odata.maxpagesize-præferenceværdien til at anmode om antallet af objekter, der returneres i svaret.
Bemærk
Du kan ikke bruge en odata.maxpagesize-præferenceværdi, der er større end 5000.
Følgende eksempel forespørger på objektsættet accounts og returnerer name-egenskaben for de første tre konti.
Anmodning
GET cc_WebAPI_ServiceURI/accounts?$select=name HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 Prefer: odata.maxpagesize=3
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 Content-Length: 402 Preference-Applied: odata.maxpagesize=3 { "@odata.context": "cc_WebAPI_ServiceURI/$metadata#accounts(name)", "value": [ { "@odata.etag": "W/\"437194\"", "name": "Fourth Coffee (sample)", "accountid": "7d51925c-cde2-e411-80db-00155d2a68cb" }, { "@odata.etag": "W/\"437195\"", "name": "Litware, Inc. (sample)", "accountid": "7f51925c-cde2-e411-80db-00155d2a68cb" }, { "@odata.etag": "W/\"468026\"", "name": "Adventure Works (sample)", "accountid": "8151925c-cde2-e411-80db-00155d2a68cb" } ], "@odata.nextLink": "cc_WebAPI_ServiceURI/accounts?$select=name&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b8151925C-CDE2-E411-80DB-00155D2A68CB%257d%2522%2520first%253d%2522%257b7D51925C-CDE2-E411-80DB-00155D2A68CB%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20/%3E" }
Brug værdien af @odata.nextLink-egenskaben til at anmode om det næste sæt poster. Du må ikke ændre eller tilføje eventuelle supplerende systemforespørgselsindstillinger til værdien. For hver efterfølgende anmodning om yderligere sider skal du bruge den samme odata.maxpagesize-præferenceværdi, der bruges i den oprindelige anmodning. Du skal desuden cachelagre de returnerede resultater eller værdien af @odata.nextLink-egenskaben, så du kan vende tilbage til tidligere hentede sider.
Bemærk
Værdien af @odata.nextLink-egenskaben er URI-kodet. Hvis du URI-koder værdien, før du sender den, vil XML-cookie-oplysningerne i URL-adressen medføre en fejl.
Anvende systemforespørgselsindstillinger
Hver af de systemforespørgselsindstillinger, du føjer til URL-adressen for objektsættet tilføjes ved hjælp af syntaksen for forespørgselsstrenge. Den første tilføjes efter [?] og efterfølgende forespørgselsindstillinger separeres ved hjælp af [&] . Der skelnes mellem store og små bogstaver for alle forespørgselsindstillinger, som vist i følgende eksempel.
GET cc_WebAPI_ServiceURI/accounts?$select=name,revenue&$top=3&$filter=revenue gt 100000
Anmode om specifikke egenskaber
Brug systemforespørgselsindstillingen $select til at begrænse de egenskaber, der returneres som vist i følgende eksempel.
GET cc_WebAPI_ServiceURI/accounts?$select=name,revenue
Vigtigt
Dette er bedste praksis for ydeevne. Hvis egenskaberne ikke angives ved hjælp af $select, returneres alle egenskaber.
Du kan forvente, at der automatisk returneres flere skrivebeskyttede egenskaber, når du anmoder om visse typer af egenskaber.
Hvis du anmoder om en pengeværdi, returneres _transactioncurrencyid_value-opslagsegenskaben. Denne egenskab indeholder kun GUID-værdien for transaktionsvalutaen,, så du kan bruge denne værdi til at hente oplysninger om valutaen ved hjælp af transactioncurrency EntityType. Ved at anmode om anmærkninger kan du også få ekstra data i den samme anmodning.Flere oplysninger:Hente data om egenskaber for opslag
Hvis du anmoder om en egenskab, der er en del af en sammensat attribut for en adresse, får du også den sammensatte egenskab. Hvis din forespørgsel f.eks. anmoder om egenskaben address1_line1 for en kontakt, returneres address1_composite-egenskaben også.Flere oplysninger:5bc03503-649d-42b5-a21f-e642c9923453#BKMK_CompositeAttributes.
Filtrer resultater
Brug systemforespørgselsindstillingen $filter til at angive kriterier for, hvilke objekter der vil blive returneret.
Standardfilteroperatorer
Web API'en understøtter de ODatastandardfilteroperatorer, der er angivet i følgende tabel.
Operatør |
Beskrivelse |
Eksempel |
---|---|---|
Sammenligningsoperatorer |
||
eq |
Er lig med |
$filter=revenue eq 100000 |
ne |
Er ikke lig med |
$filter=revenue ne 100000 |
gt |
Større end |
$filter=revenue gt 100000 |
ge |
Større end eller lig med |
$filter=revenue ge 100000 |
lt |
Mindre end |
$filter=revenue lt 100000 |
le |
Mindre end eller lig med |
$filter=revenue le 100000 |
Logiske operatorer |
||
and |
Logisk og |
$filter=revenue lt 100000 and revenue gt 2000 |
or |
Logisk eller |
$filter=contains(name,'(sample)') or contains(name,'test') |
not |
Logisk negation |
$filter=not contains(name,'sample') |
Gruppering af operatorer |
||
( ) |
Prioritetsgruppering |
(contains(name,'sample') or contains(name,'test')) and revenue gt 5000 |
Bemærk
Dette er et undersæt af 11.2.5.1.1 Indbyggede filterhandlinger. Matematiske operatorer og sammenligningen af operatorer understøttes ikke i Web API'en.
Standardforespørgselfunktioner
Web API'en understøtter disse OData-standardfunktioner for strengeforespørgsel.
Funktion |
Eksempel |
---|---|
contains |
$filter=contains(name,'(sample)') |
endswith |
$filter=endswith(name,'Inc.') |
startswith |
$filter=startswith(name,'a') |
Bemærk
Dette er et undersæt af 11.2.5.1.2 Indbyggede forespørgselsfunktioner.Date, Math, Type, Geo og andre strengefunktioner understøttes ikke i Web-API'en.
Microsoft Dynamics 365 Web-API-funktioner til forespørgsler
Microsoft Dynamics 365 har en række særlige funktioner, der accepterer parametre, returnerer booleske værdier og kan bruges som filterkriterier i en forespørgsel. Se Web API Query Function Reference for at få vist en liste over disse funktioner. Følgende er et eksempel på Between Function-søgningen efter konti med et antal medarbejdere mellem 5 og 2000.
GET cc_WebAPI_ServiceURI/accounts?$select=name,numberofemployees&$filter=Microsoft.Dynamics.CRM.Between(PropertyName='numberofemployees',PropertyValues=["5","2000"])
Flere oplysninger:Oprette en forespørgsel med funktioner.
Placering af resultater i rækkefølge
Angiv den rækkefølge, som elementerne returneres i, ved hjælp af systemforespørgselsindstillingen $orderby. Brug suffikset asc eller desc til at angive henholdsvis stigende eller faldende rækkefølge. Standarden er stigende, hvis suffikset ikke anvendes. I følgende eksempel vises hentning af navnet og omsætningsegenskaberne for konti arrangeret efter stigende omsætning og faldende navn.
GET cc_WebAPI_ServiceURI/accounts?$select=name,revenue,&$orderby=revenue asc,name desc&$filter=revenue ne null
Brug parameteraliaser med systemforespørgselsindstillinger
Du kan bruge parameteraliaser for systemforespørgselsindstillingerne $filter og $orderby. Parameteraliaser giver mulighed for, at den samme værdi bruges flere gange i en anmodning. Hvis aliaset ikke tildeles en værdi, antages det at være null.
Uden parameteraliasser |
|
Med parameteraliasser |
|
Du kan også bruge parameteraliasser, når du bruger funktioner.Flere oplysninger:Bruge Web-API-funktioner
Begrænse resultaterne
Du kan begrænse de antal resultater, der returneres, ved hjælp af systemforespørgselsindstillingen $top. Følgende eksempel returnerer kun de tre første kontoobjekter.
GET cc_WebAPI_ServiceURI/accounts?$select=name,revenue&$top=3
Bemærk
Begrænsning af resultaterne ved hjælp af $top forhindrer, at odata.maxpagesize-præferencen anvendes. Du kan bruge odata.maxpagesize-præferencen eller $top, men ikke begge dele på samme tid. Du kan finde flere oplysninger om odata.maxpagesize ved at se Angiv antallet af objekter, der skal returneres i en side.
Du bør heller ikke bruge $top med $count.
Hente en optælling af objekter
Brug systemforespørgselsindstillingen $count med en værdi på true for at omfatte en optælling af objekter, der opfylder filterkriterierne op til 5000.
Bemærk
Værdien for antallet repræsenterer dog ikke det samlede antal objekter i systemet. Det er begrænset af det maksimale antal objekter, der kan returneres.Flere oplysninger:Grænser for antallet af returnerede objekter
Svaregenskaben @odata.count indeholder antallet af enheder, der opfylder filterkriterierne, uanset odata.maxpagesize-præferencebegrænsning.
Bemærk
Du bør ikke bruge $top med $count.
Følgende eksempel viser, at der er ti konti, der svarer til kriterierne, hvor navnet indeholder "eksempel", men kun de første tre konti returneres.
Anmodning
GET cc_WebAPI_ServiceURI/accounts?$select=name&$filter=contains(name,'sample')&$count=true HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 Prefer: odata.maxpagesize=3
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 Preference-Applied: odata.maxpagesize=3 { "@odata.context":"cc_WebAPI_ServiceURI/$metadata#accounts(name)", "@odata.count":10, "value":[ { "@odata.etag":"W/\"502482\"","name":"Fourth Coffee (sample)","accountid":"655eaf89-f083-e511-80d3-00155d2a68d3" },{ "@odata.etag":"W/\"502483\"","name":"Litware, Inc. (sample)","accountid":"675eaf89-f083-e511-80d3-00155d2a68d3" },{ "@odata.etag":"W/\"502484\"","name":"Adventure Works (sample)","accountid":"695eaf89-f083-e511-80d3-00155d2a68d3" } ],"@odata.nextLink":"cc_WebAPI_ServiceURI/accounts?$select=name&$filter=contains(name,'sample')&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b695EAF89-F083-E511-80D3-00155D2A68D3%257d%2522%2520first%253d%2522%257b655EAF89-F083-E511-80D3-00155D2A68D3%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E" }
Hvis du ikke vil returnere nogen data undtagen optællingen, kan du anvende $count for enhver samling for kun at få værdien.
Anmodning
GET cc_WebAPI_ServiceURI/accounts/$count HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Svar
HTTP/1.1 200 OK Content-Type: text/plain OData-Version: 4.0 10
Medtage formaterede værdier
Når du vil modtage formaterede værdier for egenskaber med resultaterne, skal du bruge præferencen odata.include-annotations med værdien OData.Community.Display.V1.FormattedValue. Svaret indeholder disse værdier med egenskaber, der svarer til følgende navngivningskonvention:
<propertyname>@OData.Community.Display.V1.FormattedValue
I følgende eksempel forespørges der på kontiobjektsættet, og den første post returneres, herunder egenskaber, som understøtter formaterede værdier.
Anmodning
GET cc_WebAPI_ServiceURI/accounts?$select=name,donotpostalmail,accountratingcode,numberofemployees,revenue&$top=1 HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 Preference-Applied: odata.include-annotations="OData.Community.Display.V1.FormattedValue" { "@odata.context": "cc_WebAPI_ServiceURI/$metadata#accounts(name,donotpostalmail,accountratingcode,numberofemployees,revenue)", "value": [ { "@odata.etag": "W/"502170"", "name": "Fourth Coffee (sample)", "donotpostalmail@OData.Community.Display.V1.FormattedValue": "Allow", "donotpostalmail": false, "accountratingcode@OData.Community.Display.V1.FormattedValue": "Default Value", "accountratingcode": 1, "numberofemployees@OData.Community.Display.V1.FormattedValue": "9,500", "numberofemployees": 9500, "revenue@OData.Community.Display.V1.FormattedValue": "$100,000.00", "revenue": 100000, "accountid": "89390c24-9c72-e511-80d4-00155d2a68d1", "transactioncurrencyid_value": "50b6dd7b-f16d-e511-80d0-00155db07cb1" } ] }
Hente data om egenskaber for opslag
Hvis forespørgslen indeholder egenskaber for opslag, kan du anmode om anmærkninger, der giver yderligere oplysninger om dataene i disse egenskaber. De samme data kan for det meste afledes med kendskab til navigationsegenskaber med enkeltværdi og de data, der er inkluderet i de relaterede objekter. Men i tilfælde, hvor egenskaben repræsenterer en opslagsattribut, der kan referere til mere end én type objekt, kan disse oplysninger fortælle dig, hvilken type objekt opslagsegenskaben refererer til.Flere oplysninger:d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_lookupProperties
Der er yderligere to typer anmærkninger tilgængelige for disse egenskaber
Anmærkning |
Beskrivelse |
---|---|
Microsoft.Dynamics.CRM.associatednavigationproperty |
Navnet på den navigationsegenskab med en enkelt værdi, der indeholder referencen til objektet. |
Microsoft.Dynamics.CRM.lookuplogicalname |
Det logiske navn på det objekt, der refereres af opslaget. |
Disse egenskaber kan også inkludere formaterede værdier som beskrevet i Medtage formaterede værdier. Lige som formateret værdier, du kan returnere de andre anmærkninger ved hjælp af præferencen odata.include-annotations indstillet til den specifikke type anmærkning, du ønsker, eller du kan angive værdien til "*" og returnere alle tre. I følgende eksempel vises anmodningen og svaret for at hente oplysninger om incident-objektets opslagsegenskab _customerid_value med anmærkninger inkluderet.
Anmodning
GET cc_WebAPI_ServiceURI/incidents(39dd0b31-ed8b-e511-80d2-00155d2a68d4)?$select=title,customerid_value&$expand=customerid_contact($select=fullname) HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0 Prefer: odata.include-annotations="*"
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 Preference-Applied: odata.include-annotations="*" { "@odata.context":"cc_WebAPI_ServiceURI/$metadata#incidents(title,_customerid_value,customerid_contact(fullname))/$entity", "@odata.etag":"W/\"504696\"", "_customerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty":"customerid_contact", "_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname":"contact", "_customerid_value@OData.Community.Display.V1.FormattedValue":"Susanna Stubberod (sample)", "_customerid_value":"7ddd0b31-ed8b-e511-80d2-00155d2a68d4", "incidentid":"39dd0b31-ed8b-e511-80d2-00155d2a68d4", "customerid_contact":{ "@odata.etag":"W/\"503587\"", "fullname":"Susanna Stubberod (sample)", "contactid":"7ddd0b31-ed8b-e511-80d2-00155d2a68d4" } }
Filtrer poster, der er baseret på navigationsegenskaben enkeltværdi
Navigationsegenskaber giver dig adgang til data, der er relateret til det aktuelle objekt. Navigationsegenskaber med enkeltværdisvarer til opslagsattributter, der understøtter mange-til-en-relationer og gør det muligt at indstille en reference til et andet objekt.Flere oplysninger:d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_navprops
Du kan filtrere dine objektsætposter baseret på navigationsegenskabsværdier med enkeltværdi. Du kan f.eks. hente underordnede konti for den angivne konto. Du kan kun bruge den primære attributværdi for det objekt, der refererer til navigationsegenskaben med enkeltværdi, til at filtrere poster. Eksempel:
Hent alle tilknyttede firmaer for et bestemt kontakt-id
Anmodning
GET cc_WebAPI_ServiceURI/accounts?$select=name&$filter=primarycontactid/contactid%20eq%20a0dbf27c-8efb-e511-80d2-00155db07c77 HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"cc_WebAPI_ServiceURI/$metadata#accounts(name)", "value":[ { "@odata.etag":"W/\"513479\"", "name":"Adventure Works (sample)", "accountid":"3adbf27c-8efb-e511-80d2-00155db07c77" },{ "@odata.etag":"W/\"514057\"", "name":"Blue Yonder Airlines (sample)", "accountid":"3edbf27c-8efb-e511-80d2-00155db07c77" } ] }
Hent underordnede firmaer for det angivne konto-id.
Anmodning
GET cc_WebAPI_ServiceURI/accounts?$select=name&$filter=parentaccountid/accountid%20eq%203adbf27c-8efb-e511-80d2-00155db07c77 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"cc_WebAPI_ServiceURI/$metadata#accounts(name)", "value":[ { "@odata.etag":"W/\"514058\"", "name":"Sample Child Account 1", "accountid":"915e89f5-29fc-e511-80d2-00155db07c77" },{ "@odata.etag":"W/\"514061\"", "name":"Sample Child Account 2", "accountid":"03312500-2afc-e511-80d2-00155db07c77" } ] }
Hente relaterede objekter ved at udvide navigationsegenskaber
Brug $expand-systemforespørgselsindstillingen i navigationsegenskaberne til at styre, hvilke data der returneres fra de relaterede objekter. Der findes to typer navigationsegenskaber:
Navigationsegenskaber med enkeltværdisvarer til opslagsattributter, der understøtter mange-til-en-relationer og gør det muligt at indstille en reference til et andet objekt.
Navigationsegenskaberne gruppeværdi svarer til en-til-mange- eller mange-til-mange-relationer.
Hvis du blot inkluderer navnet på navigationsegenskaben, modtager du alle egenskaberne for relaterede poster. Du kan begrænse de egenskaber, der er returneret til relaterede poster, ved hjælp af $select-systemforespørgselsindstillingen i parentes efter navigationsegenskabsnavnet. Brug denne til både navigationsegenskaber med enkeltværdi og gruppeværdi.
Bemærk
Hvis du vil hente relaterede objekter for en objektforekomst, kan du se Hente relaterede objekter for et objekt ved at udvide navigationsegenskaber.
Hente relaterede objekter ved at udvide navigationsegenskaber med enkeltværdi: Følgende eksempel demonstrerer, hvordan du henter kontakten for alle firmaposter. Vi henter kun contactid og fullname for de relaterede kontaktposter.
Anmodning
GET cc_WebAPI_ServiceURI/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"cc_WebAPI_ServiceURI/$metadata#accounts(name,primarycontactid,primarycontactid(contactid,fullname))","value":[ { "@odata.etag":"W/\"513475\"","name":"Fourth Coffee (sample)","accountid":"36dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "contactid":"9cdbf27c-8efb-e511-80d2-00155db07c77","fullname":"Yvonne McKay (sample)" } },{ "@odata.etag":"W/\"513477\"","name":"Litware, Inc. (sample)","accountid":"38dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "contactid":"9edbf27c-8efb-e511-80d2-00155db07c77","fullname":"Susanna Stubberod (sample)" } },{ "@odata.etag":"W/\"513479\"","name":"Adventure Works (sample)","accountid":"3adbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "contactid":"a0dbf27c-8efb-e511-80d2-00155db07c77","fullname":"Nancy Anderson (sample)" } },{ "@odata.etag":"W/\"513481\"","name":"Fabrikam, Inc. (sample)","accountid":"3cdbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "contactid":"a2dbf27c-8efb-e511-80d2-00155db07c77","fullname":"Maria Campbell (sample)" } },{ "@odata.etag":"W/\"514057\"","name":"Blue Yonder Airlines (sample)","accountid":"3edbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "contactid":"a0dbf27c-8efb-e511-80d2-00155db07c77","fullname":"Nancy Anderson (sample)" } },{ "@odata.etag":"W/\"513485\"","name":"City Power & Light (sample)","accountid":"40dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "contactid":"a6dbf27c-8efb-e511-80d2-00155db07c77","fullname":"Scott Konersmann (sample)" } },{ "@odata.etag":"W/\"513487\"","name":"Contoso Pharmaceuticals (sample)","accountid":"42dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "contactid":"a8dbf27c-8efb-e511-80d2-00155db07c77","fullname":"Robert Lyon (sample)" } },{ "@odata.etag":"W/\"513489\"","name":"Alpine Ski House (sample)","accountid":"44dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "contactid":"aadbf27c-8efb-e511-80d2-00155db07c77","fullname":"Paul Cannon (sample)" } },{ "@odata.etag":"W/\"513491\"","name":"A. Datum Corporation (sample)","accountid":"46dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "contactid":"acdbf27c-8efb-e511-80d2-00155db07c77","fullname":"Rene Valdes (sample)" } },{ "@odata.etag":"W/\"513493\"","name":"Coho Winery (sample)","accountid":"48dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "contactid":"aedbf27c-8efb-e511-80d2-00155db07c77","fullname":"Jim Glynn (sample)" } } ] }
I stedet for at returnere de relaterede objektsæt kan du også returnere referencer (links) til de tilknyttede objekter ved at udvide navigatoinsegenskaben med enkeltværdi med indstillingen $ref. Følgende eksempel returnerer hyperlinks til kontaktposterne for alle firmaerne.
Anmodning
GET cc_WebAPI_ServiceURI/accounts?$select=name&$expand=primarycontactid/$ref HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"cc_WebAPI_ServiceURI/$metadata#accounts(name,primarycontactid)","value":[ { "@odata.etag":"W/\"513475\"","name":"Fourth Coffee (sample)","_primarycontactid_value":"9cdbf27c-8efb-e511-80d2-00155db07c77","accountid":"36dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "@odata.id":"cc_WebAPI_ServiceURI/contacts(9cdbf27c-8efb-e511-80d2-00155db07c77)" } },{ "@odata.etag":"W/\"513477\"","name":"Litware, Inc. (sample)","_primarycontactid_value":"9edbf27c-8efb-e511-80d2-00155db07c77","accountid":"38dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "@odata.id":"cc_WebAPI_ServiceURI/contacts(9edbf27c-8efb-e511-80d2-00155db07c77)" } },{ "@odata.etag":"W/\"513479\"","name":"Adventure Works (sample)","_primarycontactid_value":"a0dbf27c-8efb-e511-80d2-00155db07c77","accountid":"3adbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "@odata.id":"cc_WebAPI_ServiceURI/contacts(a0dbf27c-8efb-e511-80d2-00155db07c77)" } },{ "@odata.etag":"W/\"513481\"","name":"Fabrikam, Inc. (sample)","_primarycontactid_value":"a2dbf27c-8efb-e511-80d2-00155db07c77","accountid":"3cdbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "@odata.id":"cc_WebAPI_ServiceURI/contacts(a2dbf27c-8efb-e511-80d2-00155db07c77)" } },{ "@odata.etag":"W/\"514057\"","name":"Blue Yonder Airlines (sample)","_primarycontactid_value":"a0dbf27c-8efb-e511-80d2-00155db07c77","accountid":"3edbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "@odata.id":"cc_WebAPI_ServiceURI/contacts(a0dbf27c-8efb-e511-80d2-00155db07c77)" } },{ "@odata.etag":"W/\"513485\"","name":"City Power & Light (sample)","_primarycontactid_value":"a6dbf27c-8efb-e511-80d2-00155db07c77","accountid":"40dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "@odata.id":"cc_WebAPI_ServiceURI/contacts(a6dbf27c-8efb-e511-80d2-00155db07c77)" } },{ "@odata.etag":"W/\"513487\"","name":"Contoso Pharmaceuticals (sample)","_primarycontactid_value":"a8dbf27c-8efb-e511-80d2-00155db07c77","accountid":"42dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "@odata.id":"cc_WebAPI_ServiceURI/contacts(a8dbf27c-8efb-e511-80d2-00155db07c77)" } },{ "@odata.etag":"W/\"513489\"","name":"Alpine Ski House (sample)","_primarycontactid_value":"aadbf27c-8efb-e511-80d2-00155db07c77","accountid":"44dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "@odata.id":"cc_WebAPI_ServiceURI/contacts(aadbf27c-8efb-e511-80d2-00155db07c77)" } },{ "@odata.etag":"W/\"513491\"","name":"A. Datum Corporation (sample)","_primarycontactid_value":"acdbf27c-8efb-e511-80d2-00155db07c77","accountid":"46dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "@odata.id":"cc_WebAPI_ServiceURI/contacts(acdbf27c-8efb-e511-80d2-00155db07c77)" } },{ "@odata.etag":"W/\"513493\"","name":"Coho Winery (sample)","_primarycontactid_value":"aedbf27c-8efb-e511-80d2-00155db07c77","accountid":"48dbf27c-8efb-e511-80d2-00155db07c77","primarycontactid":{ "@odata.id":"cc_WebAPI_ServiceURI/contacts(aedbf27c-8efb-e511-80d2-00155db07c77)" } } ] }
Hente relaterede objekter ved at udvide navigationsegenskaber med gruppeværdi: Hvis du udvider navigationsparametre med gruppeværdi for at hente relaterede objekter for objektsæt, returneres en @odata.nextLink-egenskab til de relaterede objekter. Du skal bruge værdien af @odata.nextLink-egenskaben med en ny GET-anmodning for at returnere de påkrævede data.
Følgende eksempel henter de opgaver, der er tildelt til de øverste 5 firmaposter.
Anmodning
GET cc_WebAPI_ServiceURI/accounts?$top=5&$select=name&$expand=Account_Tasks($select%20=%20subject,%20scheduledstart) HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"cc_WebAPI_ServiceURI/$metadata#accounts(name,Account_Tasks,Account_Tasks(subject,scheduledstart))","value":[ { "@odata.etag":"W/\"513475\"","name":"Fourth Coffee (sample)","accountid":"36dbf27c-8efb-e511-80d2-00155db07c77","Account_Tasks":[ ],"Account_Tasks@odata.nextLink":"cc_WebAPI_ServiceURI/accounts(36dbf27c-8efb-e511-80d2-00155db07c77)/Account_Tasks?$select%20=%20subject,%20scheduledstart" },{ "@odata.etag":"W/\"513477\"","name":"Litware, Inc. (sample)","accountid":"38dbf27c-8efb-e511-80d2-00155db07c77","Account_Tasks":[ ],"Account_Tasks@odata.nextLink":"cc_WebAPI_ServiceURI/accounts(38dbf27c-8efb-e511-80d2-00155db07c77)/Account_Tasks?$select%20=%20subject,%20scheduledstart" },{ "@odata.etag":"W/\"514074\"","name":"Adventure Works (sample)","accountid":"3adbf27c-8efb-e511-80d2-00155db07c77","Account_Tasks":[ ],"Account_Tasks@odata.nextLink":"cc_WebAPI_ServiceURI/accounts(3adbf27c-8efb-e511-80d2-00155db07c77)/Account_Tasks?$select%20=%20subject,%20scheduledstart" },{ "@odata.etag":"W/\"513481\"","name":"Fabrikam, Inc. (sample)","accountid":"3cdbf27c-8efb-e511-80d2-00155db07c77","Account_Tasks":[ ],"Account_Tasks@odata.nextLink":"cc_WebAPI_ServiceURI/accounts(3cdbf27c-8efb-e511-80d2-00155db07c77)/Account_Tasks?$select%20=%20subject,%20scheduledstart" },{ "@odata.etag":"W/\"514057\"","name":"Blue Yonder Airlines (sample)","accountid":"3edbf27c-8efb-e511-80d2-00155db07c77","Account_Tasks":[ ],"Account_Tasks@odata.nextLink":"cc_WebAPI_ServiceURI/accounts(3edbf27c-8efb-e511-80d2-00155db07c77)/Account_Tasks?$select%20=%20subject,%20scheduledstart" } ] }
Hente relaterede objekter ved at udvide navigationsegenskaber med både enkeltværdi og gruppeværdi: Følgende eksempel viser, hvordan du kan udvide relaterede objekter for objektsæt ved at bruge både navigationsegenskaber med enkeltværdi og gruppeværdi. Som forklaret tidligere vil en udvidelse af navigationsegenskaber med gruppeværdi for at hente relaterede objekter for objektsæt returnere en @odata.nextLink-egenskab for de relaterede objekter. Du skal bruge værdien af @odata.nextLink-egenskaben med en ny GET-anmodning for at returnere de påkrævede data.
I dette eksempel henter vi kontakten og opgaverne, der er tildelt til de øverste 3 konti.
Anmodning
GET cc_WebAPI_ServiceURI/accounts?$top=3&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"cc_WebAPI_ServiceURI/$metadata#accounts(name,primarycontactid,Account_Tasks,primarycontactid(contactid,fullname),Account_Tasks(subject,scheduledstart))","value":[ { "@odata.etag":"W/\"550614\"", "name":"Fourth Coffee (sample)", "accountid":"5b9648c3-68f7-e511-80d3-00155db53318", "primarycontactid":{ "contactid":"c19648c3-68f7-e511-80d3-00155db53318", "fullname":"Yvonne McKay (sample)" }, "Account_Tasks":[ ],"Account_Tasks@odata.nextLink":"cc_WebAPI_ServiceURI/accounts(5b9648c3-68f7-e511-80d3-00155db53318)/Account_Tasks?$select=subject,scheduledstart" },{ "@odata.etag":"W/\"550615\"", "name":"Litware, Inc. (sample)", "accountid":"5d9648c3-68f7-e511-80d3-00155db53318", "primarycontactid":{ "contactid":"c39648c3-68f7-e511-80d3-00155db53318", "fullname":"Susanna Stubberod (sample)" },"Account_Tasks":[ ],"Account_Tasks@odata.nextLink":"cc_WebAPI_ServiceURI/accounts(5d9648c3-68f7-e511-80d3-00155db53318)/Account_Tasks?$select=subject,scheduledstart" },{ "@odata.etag":"W/\"550616\"", "name":"Adventure Works (sample)", "accountid":"5f9648c3-68f7-e511-80d3-00155db53318", "primarycontactid":{ "contactid":"c59648c3-68f7-e511-80d3-00155db53318", "fullname":"Nancy Anderson (sample)" },"Account_Tasks":[ ],"Account_Tasks@odata.nextLink":"cc_WebAPI_ServiceURI/accounts(5f9648c3-68f7-e511-80d3-00155db53318)/Account_Tasks?$select=subject,scheduledstart" } ] }
Se også
Eksempel på Web API-forespørgselsdata (C#)
Eksempel på Web API-forespørgselsdata (JavaScript på klientsiden)
Udføre operationer ved hjælp af web-API
Skrive HTTP-anmodninger og håndtere fejl
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