Querygegevens met behulp van de web-API
Gepubliceerd: januari 2017
Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Als u gegevens voor een entiteitset wilt ophalen, gebruikt u een GET-aanvraag. Bij het ophalen van gegevens kunt u queryopties toepassen om criteria voor de gegevens in te stellen en de entiteitseigenschappen die moeten worden geretourneerd.
In dit onderwerp
Eenvoudig queryvoorbeeld
Limieten voor aantal te retourneren entiteiten
Geef het aantal entiteiten op dat op een pagina moet worden weergegeven
Systeemqueryopties toepassen
Specifieke eigenschappen aanvragen
Resultaten filteren
Resultaten ordenen
Parameteraliassen gebruiken met systeemqueryopties
Resultaten beperken
Het aantal entiteiten ophalen
Opgemaakte waarden ophalen
Gegevens over opzoekeigenschappen ophalen
Records filteren op basis van navigatie-eigenschappen met één waarde
Gerelateerde entiteiten ophalen door navigatie-eigenschappen uit te breiden
Eenvoudig queryvoorbeeld
In dit voorbeeld wordt een query uitgevoerd voor de accounts-entiteitset en worden de $select- en $top-systeemqueryopties gebruikt om de name-eigenschap te retourneren voor de eerste drie accounts:
Aanvraag
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" } ] }
Limieten voor aantal te retourneren entiteiten
Tenzij u een kleiner paginaformaat opgeeft, worden maximaal 5000 entiteiten voor elke aanvraag geretourneerd. Als er meerdere entiteiten zijn die aan de queryfiltercriteria voldoen, zal een @odata.nextLink-eigenschap met de resultaten worden geretourneerd. Gebruik de waarde van de @odata.nextLink-eigenschap met een nieuwe GET-aanvraag om de volgende pagina met gegevens te retourneren.
Notitie
Query's voor modelentiteiten worden niet beperkt of gepagineerd.Meer informatie:Query's uitvoeren op metagegevens via de web-API
Geef het aantal entiteiten op dat op een pagina moet worden weergegeven
Gebruik de odata.maxpagesize-voorkeurswaarde om het aantal entiteiten aan te vragen dat wordt geretourneerd in de respons.
Notitie
U kunt geen odata.maxpagesize-voorkeurswaarde gebruiken die groter is dan 5000.
In het volgende voorbeeld wordt een query uitgevoerd voor de accounts -entiteitset en wordt de name-eigenschap geretourneerd voor de eerste drie accounts.
Aanvraag
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
Respons
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" }
Gebruik de waarde van de @odata.nextLink-eigenschap om de volgende set records aan te vragen. Wijzig de waarde niet en voeg hier ook geen extra systeemqueryopties aan toe. Voor elke volgende aanvraag voor extra pagina's moet u dezelfde odata.maxpagesize-voorkeurswaarde gebruiken als in de oorspronkelijke aanvraag. Sla de geretourneerde resultaten of de waarde van de @odata.nextLink-eigenschap op in de cache zodat u kunt terugkeren naar eerder opgehaalde pagina's.
Notitie
De waarde van de @odata.nextLink-eigenschap is URI-gecodeerd. Als u URI de waarde codeert voordat u deze verzendt, veroorzaakt de XML-cookieinformatie in URL een fout.
Systeemqueryopties toepassen
Elk van de systeemqueryopties die u toevoegt aan de URL voor de entiteitset, wordt toegevoegd met de syntaxis voor querytekenreeksen. De eerste wordt toegevoegd nadat [?] en volgende queryopties van elkaar zijn gescheiden met [&]. Alle queryopties zijn hoofdlettergevoelig zoals te zien is in het volgende voorbeeld.
GET cc_WebAPI_ServiceURI/accounts?$select=name,revenue&$top=3&$filter=revenue gt 100000
Specifieke eigenschappen aanvragen
Gebruik de $select-systeemqueryoptie om de te retourneren eigenschappen te beperken, zoals te zien is in het volgende voorbeeld.
GET cc_WebAPI_ServiceURI/accounts?$select=name,revenue
Belangrijk
Dit is een aanbevolen prestatieprocedure. Als eigenschappen niet met $select zijn opgegeven, worden alle eigenschappen geretourneerd.
Als u bepaalde typen eigenschappen aanvraagt, kunt u verwachten dat er automatisch extra alleen-lezeneigenschappen worden geretourneerd.
Als u een geldwaarde aanvraagt, wordt de _transactioncurrencyid_value-opzoekeigenschap geretourneerd. Deze eigenschap bevat alleen de GUID-waarde van de transactievaluta zodat u deze waarde kunt gebruiken om informatie over de valuta op te halen via transactioncurrency EntityType Door aantekeningen aan te vragen, kunt u ook aanvullende gegevens ontvangen via dezelfde aanvraag.Meer informatie:Gegevens over opzoekeigenschappen ophalen
Als u een eigenschap aanvraagt die deel uitmaakt van een samengesteld kenmerk voor een adres, ontvangt u ook de samengestelde eigenschap. Wanneer u met uw query de eigenschap address1_line1 voor een contactpersoon aanvraagt, wordt bijvoorbeeld ook de eigenschap address1_composite geretourneerd.Meer informatie:5bc03503-649d-42b5-a21f-e642c9923453#BKMK_CompositeAttributes.
Resultaten filteren
Gebruik de $filter-systeemqueryoptie als u criteria wilt instellen voor te retourneren entiteiten.
Standaardfilteroperatoren
Web-API ondersteunt de standaard OData-filteroperatoren die in de volgende tabel worden vermeld.
Operator |
Beschrijving |
Voorbeeld |
---|---|---|
Vergelijkingsoperatoren |
||
eq |
Gelijk |
$filter=revenue eq 100000 |
ne |
Niet gelijk aan |
$filter=revenue ne 100000 |
gt |
Groter dan |
$filter=revenue gt 100000 |
ge |
Groter dan of gelijk |
$filter=revenue ge 100000 |
lt |
Kleiner dan |
$filter=revenue lt 100000 |
le |
Is kleiner dan of gelijk aan |
$filter=revenue le 100000 |
Logische operatoren |
||
and |
Logisch en |
$filter=revenue lt 100000 and revenue gt 2000 |
or |
Logisch of |
$filter=contains(name,'(sample)') or contains(name,'test') |
not |
Logische negatie |
$filter=not contains(name,'sample') |
Groeperingsoperatoren |
||
( ) |
Voorkeursgroepering |
(contains(name,'sample') or contains(name,'test')) and revenue gt 5000 |
Notitie
Dit is een subset van de 11.2.5.1.1 Ingebouwde filterbewerkingen. Rekenkundige operatoren en de vergelijkingsoperator worden niet ondersteund in de web-API.
Standaardqueryfuncties
De web-API ondersteunt deze standaard OData-tekenreeksqueryfuncties.
Functie |
Voorbeeld |
---|---|
contains |
$filter=contains(name,'(sample)') |
endswith |
$filter=endswith(name,'Inc.') |
startswith |
$filter=startswith(name,'a') |
Notitie
Dit is een subset van de 11.2.5.1.2 Ingebouwde queryfuncties.Date, Math, Type, Geo en andere tekenreeksfuncties worden niet ondersteund in de web-API.
Queryfuncties van de web-API in Microsoft Dynamics 365
Microsoft Dynamics 365 biedt een aantal speciale functies die parameters accepteren, Booleaanse waarden retourneren en als filtercriteria in een query kunnen worden gebruikt. Zie Web API Query Function Reference voor een lijst van deze functies. Hier volgt een voorbeeld van de Between Function die naar accounts zoekt met een aantal werknemers tussen 5 en 2000.
GET cc_WebAPI_ServiceURI/accounts?$select=name,numberofemployees&$filter=Microsoft.Dynamics.CRM.Between(PropertyName='numberofemployees',PropertyValues=["5","2000"])
Meer informatie:Een query met functies samenstellen.
Resultaten ordenen
Geef op in welke volgorde items moeten worden geretourneerd met de $orderby-systeemqueryoptie. Gebruik het achtervoegsel asc of desc om respectievelijk een oplopende of aflopende volgorde op te geven. De standaardoptie is oplopend, als het achtervoegsel niet wordt toegepast. Het volgende voorbeeld toont het ophalen van de naam en omzeteigenschappen van accounts met een oplopende volgorde voor de omzet en een aflopende voor de naam.
GET cc_WebAPI_ServiceURI/accounts?$select=name,revenue,&$orderby=revenue asc,name desc&$filter=revenue ne null
Parameteraliassen gebruiken met systeemqueryopties
U kunt parameteraliassen gebruiken voor $filter- en $orderby-systeemqueryopties. Met parameteraliassen kunt u dezelfde waarde meerdere malen gebruiken in een aanvraag. Als er geen waarde wordt toegewezen aan de alias, wordt verondersteld dat deze null is.
Zonder parameteraliassen |
|
Met parameteraliassen |
|
U kunt ook parameteraliassen gebruiken wanneer u functies gebruikt.Meer informatie:Web-API-functies gebruiken
Resultaten beperken
U kunt het aantal te retourneren resultaten beperken met de $topsysteemqueryoptie. In het volgende voorbeeld worden alleen de eerste accountentiteiten geretourneerd.
GET cc_WebAPI_ServiceURI/accounts?$select=name,revenue&$top=3
Notitie
Als u het aantal resultaten beperkt met $top, voorkomt u dat de odata.maxpagesize-voorkeur wordt toegepast. U kunt de odata.maxpagesize-voorkeur of $top gebruiken, maar niet beide tegelijk. Voor meer informatie over odata.maxpagesize raadpleegt u Geef het aantal entiteiten op dat op een pagina moet worden weergegeven.
U moet $top ook niet gebruiken in combinatie met $count.
Het aantal entiteiten ophalen
Gebruik de $count-systeemqueryoptie met een waarde van true om maximaal 5000 entiteiten te retourneren die met de filtercriteria overeenkomen.
Notitie
Het aantal staat niet voor het totale aantal entiteiten in het systeem. Het wordt bepaald door het maximale aantal entiteiten dat mag worden geretourneerd.Meer informatie:Limieten voor aantal te retourneren entiteiten
De respons @odata.count-eigenschap bevat het aantal entiteiten dat aan de filtercriteria voldoet, ongeacht een eventuele odata.maxpagesize-voorkeursbeperking.
Notitie
U moet $top niet gebruiken in combinatie met $count.
Het volgende voorbeeld laat zien dat er tien accounts zijn die voldoen aan de criteria (de naam bevat "voorbeeld"), maar alleen de eerste drie accounts worden geretourneerd.
Aanvraag
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
Respons
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" }
Als u behalve het aantal geen andere gegevens wilt retourneren, kunt u $count toepassen op elke verzameling om alleen die waarde op te halen.
Aanvraag
GET cc_WebAPI_ServiceURI/accounts/$count HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Respons
HTTP/1.1 200 OK Content-Type: text/plain OData-Version: 4.0 10
Opgemaakte waarden ophalen
Als u opgemaakte waarden wilt retourneren voor eigenschappen, gebruikt u de odata.include-annotations-voorkeur met de waarde van OData.Community.Display.V1.FormattedValue. De respons bevat dan deze waarden met eigenschappen die aan de volgende naamgevingsconventie voldoen:
<propertyname>@OData.Community.Display.V1.FormattedValue
In het volgende voorbeeld wordt een query uitgevoerd voor de accountentiteitset en wordt de eerste record geretourneerd, inclusief eigenschappen die opgemaakte waarden ondersteunen.
Aanvraag
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"
Respons
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" } ] }
Gegevens over opzoekeigenschappen ophalen
Als uw query opzoekeigenschappen bevat, kunt u aantekeningen aanvragen die extra informatie over de gegevens in deze eigenschappen kunnen bieden. Meestal kunnen deze gegevens ook worden afgeleid met kennis van de single-valued navigatie-eigenschappen en de gegevens in de gerelateerde entiteiten. Echter, in gevallen waarin de eigenschap een opzoekkenmerk is dat naar meer dan één entiteitstype kan verwijzen, kan deze informatie u vertellen naar welk type entiteit door de opzoekeigenschap wordt verwezen.Meer informatie:d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_lookupProperties
Er zijn twee extra typen aantekeningen beschikbaar voor deze eigenschappen,
Aantekening |
Beschrijving |
---|---|
Microsoft.Dynamics.CRM.associatednavigationproperty |
De naam van de single-valued navigatie-eigenschap die de verwijzing naar de entiteit bevat. |
Microsoft.Dynamics.CRM.lookuplogicalname |
De logische naam van de entiteit waarnaar het opzoekactie verwijst. |
Deze eigenschappen kunnen ook opgemaakte waarden bevatten, zoals beschreven in Opgemaakte waarden ophalen. Behalve opgemaakte waarden kunt u ook de andere aantekeningen retourneren als u de odata.include-annotations-voorkeur instelt op het gewenste type aantekening, of u kunt de waarde instellen op "*" om alle drie de waarden te retourneren. Het volgende voorbeeld toont de aanvraag en respons om informatie op te halen over de _customerid_value-opzoekeigenschap van de incident-entiteit, inclusief aantekeningen.
Aanvraag
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="*"
Respons
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" } }
Records filteren op basis van navigatie-eigenschappen met één waarde
Met navigatie-eigenschappen kunt u toegang krijgen tot gegevens die gerelateerd zijn aan de huidige entiteit.Single-valued navigatie-eigenschappen corresponderen met opzoekkenmerken die veel-op-een-relaties ondersteunen en waarmee verwijzingen naar andere entiteiten kunnen worden ingesteld.Meer informatie:d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_navprops
U kunt uw records voor entiteitssets filteren op basis van waarden van single-valued navigatie-eigenschappen. U kunt bijvoorbeeld onderliggende accounts ophalen voor de opgegeven account-id. Om records te filteren, kunt u alleen de waarde gebruiken van het primaire kenmerk van de entiteit waarnaar wordt verwezen door de single-valued navigatie-eigenschap. Bijvoorbeeld:
Alle bijbehorende accounts ophalen voor een opgegeven contactpersoon-id.
Aanvraag
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
Respons
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" } ] }
Haal onderliggende accounts op voor de opgegeven account-id.
Aanvraag
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
Respons
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" } ] }
Gerelateerde entiteiten ophalen door navigatie-eigenschappen uit te breiden
Gebruik de systeemqueryoptie $expand in de navigatie-eigenschappen om te bepalen welke gegevens van gerelateerde entiteiten worden geretourneerd. Er zijn twee typen navigatie-eigenschappen:
Single-valued navigatie-eigenschappen corresponderen met opzoekkenmerken die veel-op-een-relaties ondersteunen en waarmee verwijzingen naar andere entiteiten kunnen worden ingesteld.
Collection-valued navigatie-eigenschappen corresponderen met een-op-veel-relaties of veel-op-veel-relaties.
Als u alleen de naam van de navigatie-eigenschap opneemt, ontvangt u alle eigenschappen van gerelateerde records. U kunt het aantal geretourneerde eigenschappen voor de gerelateerde records beperken door tussen haakjes de systeemqueryoptie $select toe te voegen achter de naam van de navigatie-eigenschap. Dit kunt u doen bij zowel single-valued als ook collection-valued navigatie-eigenschappen.
Notitie
Als u gerelateerde entiteiten wilt ophalen voor een entiteitsexemplaar, raadpleegt u Gerelateerde entiteiten ophalen voor een entiteit door navigatie-eigenschappen uit te vouwen.
Gerelateerde entiteiten ophalen door single-valued navigatie-eigenschappen uit te vouwen: In het volgende voorbeeld ziet u hoe u de contactpersoon voor alle accountrecords kunt ophalen. Voor de gerelateerde contactpersoonrecords worden alleen de contactid en de fullname opgehaald.
Aanvraag
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
Respons
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)" } } ] }
In plaats van dat de gerelateerde entiteiten voor entiteitssets worden geretourneerd, kunt u ook verwijzingen (koppelingen) naar de gerelateerde entiteit laten retourneren door de single-valued navigatie-eigenschap uit te vouwen met de optie $ref. In het volgende voorbeeld worden koppelingen naar contactpersoonrecords voor alle accounts geretourneerd.
Aanvraag
GET cc_WebAPI_ServiceURI/accounts?$select=name&$expand=primarycontactid/$ref HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Respons
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)" } } ] }
Gerelateerde entiteiten ophalen door collection-valued navigatie-eigenschappen uit te vouwen: Als u op collection-valued navigatieparameters uitvouwt om gerelateerde entiteiten voor entiteitsets op te halen, wordt een @odata.nextLink-eigenschap voor de gerelateerde entiteiten geretourneerd. U moet waarde van de eigenschap @odata.nextLink gebruiken in een nieuwe GET-aanvraag om de gewenste gegevens te laten retourneren.
In het volgende voorbeeld worden de taken opgehaald die zijn toegewezen aan de bovenste vijf accountrecords.
Aanvraag
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
Respons
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" } ] }
Gerelateerde entiteiten ophalen door zowel single-valued als collection-valued navigatie-eigenschappen uit te vouwen: In het volgende voorbeeld ziet u hoe u gerelateerde entiteiten voor entiteitssets kunt uitvouwen door gebruik te maken van zowel single- als collection-valued navigatie-eigenschappen. Zoals reeds gezegd, als u op collection-valued navigatie-eigenschappen uitvouwt om gerelateerde entiteiten op te halen voor entiteitsets, wordt een @odata.nextLink-eigenschap voor de gerelateerde entiteiten geretourneerd. U moet waarde van de eigenschap @odata.nextLink gebruiken in een nieuwe GET-aanvraag om de gewenste gegevens te laten retourneren.
In dit voorbeeld worden de contactpersoon en de toegewezen taken voor de bovenste drie accounts opgehaald.
Aanvraag
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
Respons
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" } ] }
Zie ook
Voorbeeld gegevens Web API-query (C#)
Voorbeeld web-API querygegevens (JavaScript op client)
Bewerkingen uitvoeren met de web-API
HTTP-aanvragen opstellen en fouten afhandelen
Een entiteit maken met de web-API
Een entiteit ophalen met de web-API
Entiteiten bijwerken en verwijderen met de Web-API
Entiteiten koppelen en ontkoppelen met de web-API
Web-API-functies gebruiken
Web-API-acties gebruiken
Batchbewerkingen uitvoeren met de Web API
Zich als een andere gebruiker voordoen die de Web API gebruikt
Voorwaardelijke bewerkingen uitvoer met de web-API
Microsoft Dynamics 365
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht