Exemple d’opérations de base de l’API Web

Notes

Vous n’êtes pas sûr de l’entité par rapport à la table ? Voir Développeurs : Comprendre la terminologie dans Microsoft Dataverse.

Cette collection d’exemples d’extraits de code montre comment effectuer des opérations CRUD de base (Créer, Récupérer, Mettre à jour et Supprimer) et des opérations associatives à l’aide de l’API Web Microsoft Dataverse.

Ce sujet décrit un ensemble commun d’opérations implémentées par chaque échantillon d’extrait de ce groupe. Ce sujet décrit les requêtes et réponses HTTP et la sortie de texte que chaque échantillon exécutera sans les détails spécifiques à la langue. Affichez les descriptions spécifiques à la langue et les exemples individuels pour plus d’informations sur la façon dont ces opérations sont effectuées.

Montre ce qui suit

Cet exemple est composé des principales sections suivantes, qui contiennent les opérations de données de requête de l’API Web Dataverse qui sont décrites plus en détail dans les rubriques conceptuelles associées spécifiées.

Section Code Rubriques conceptuelles associées
Section 1 : Opérations de création et de mise à jour de base Création de base
Créer une entité avec les données retournées
Mise à jour de base
Mettre à jour une entité avec les données retournées
Section 2 : Créer avec association Associer des lignes de table lors de la création
Section 3 : Créer des lignes de tableau associées (insertion profonde) Créer des lignes de table associées en une seule opération
Section 4 : Associer et dissocier des lignes de table existantes Associer et dissocier des lignes de tables à l’aide de l’API web
Section 5 : Supprimer des lignes de tableau (nettoyage d’échantillon) Suppression de base

Notes

Par souci de concision, des en-têtes HTTP moins pertinents ont été omis. Les URL des enregistrements du tableau varient en fonction de l’adresse de l’organisation de base et de l’ID de la ligne attribué par votre serveur Dataverse.

Section 1 : Opérations de création et de mise à jour de base

Cette section crée un contact unique puis effectue une série de mises à jour sur cette instance. Notez que l’en-tête de réponse OData-EntityId contient l’URL de cet ligne créé récemment, qui comprend entre parenthèses l’ID unique de cet enregistrement.

  1. Créez un contact, appelé Peter Cambel.

Demande

POST https://[Organization URI]/api/data/v9.0/contacts HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
{  
  "firstname": "Peter",  
  "lastname": "Cambel"  
}  

Réponse

HTTP/1.1 204 No Content  
OData-Version: 4.0  
OData-EntityId: https://[Organization URI]/api/data/v9.0/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)  

Sortie de la console

Contact 'Peter Cambel' created.  

Les propriétés disponibles pour chaque type sont définies dans le document des métadonnées et sont également documentées pour chaque type dans la section Web API EntityType Reference. Pour obtenir des informations générales, voir Types d’opérations de l’API Web.

  1. Mettez le contact à jour avec les valeurs de chiffre d’affaires annuel (80 000 USD) et la fonction (Développeur junior).

Demande

PATCH https://[Organization URI]/api/data/v9.0/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
{  
  "annualincome": 80000,  
  "jobtitle": "Junior Developer"  
}  

Réponse

HTTP/1.1 204 No Content  

Sortie de la console

Contact 'Peter Cambel' updated with job title and annual income.  
  1. Récupérez le contact avec son ensemble de propriétés explicitement initialisées. Le fullname est une propriété en lecture seule qui est calculée avec les propriétés firstname et lastname, qui ont été explicitement initialisées lorsque l’instance a été créée. En revanche, la propriété description n’a pas été explicitement lancée, elle conserve sa valeur par défaut, une chaîne null.

    Notez que la réponse, en plus des valeurs demandées et des en-têtes courants, renvoie également automatiquement les types suivants d’informations supplémentaires :

    • L’ID principal du type de table actuel, ici contactid.

    • Une valeur de l’ETAG, dénotée par la clé de @odata.etag, qui identifie la version spécifique de la ressource demandée. Pour plus d’informations, voir Effectuer les opérations conditionnelles à l’aide de l’API Web.

    • Le contexte des métadonnées, dénoté par la clé @odata.context, permet de comparer les résultats des requêtes afin de déterminer s’ils provenaient de la même requête.

    • Une _transactioncurrencyid_value qui indique la devise locale de la transaction monétaire.

Demande

GET https://[Organization URI]/api/data/v9.0/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)?$select=fullname,annualincome,jobtitle,description HTTP/1.1  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

Réponse

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0  
{   
   "@odata.context":"https://[Organization URI]/api/data/v9.0/$metadata#contacts(fullname,annualincome,jobtitle,description)/$entity",  
   "@odata.etag":"W/\"628883\"",  
   "fullname":"Peter Cambel",  
   "annualincome":80000.0000,  
   "jobtitle":"Junior Developer",  
   "description":null,  
   "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03",  
   "contactid":"60f77a42-5f0e-e611-80e0-00155da84c03"  
}  

Sortie de la console

Contact 'Peter Cambel' retrieved:  
       Income: 80000  
       Job title: Junior Developer  
       Description: .    

Important

Vous devez toujours utiliser la sélection et le filtrage dans les opérations de récupération pour optimiser les performances. Pour plus d’informations, voir Interroger les données à l’aide de l’API Web.

  1. Mettez à jour l’instance de contact en fournissant de nouvelles valeurs à ces mêmes propriétés.

Demande

PATCH https://[Organization URI]/api/data/v9.0/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
{  
   "jobtitle": "Senior Developer",  
   "annualincome": 95000,  
   "description": "Assignment to-be-determined"  
}    

Réponse

HTTP/1.1 204 No Content    

Sortie de la console

Contact 'Peter Cambel' updated:  
       Job title: Senior Developer  
       Annual income: 95000  
       Description: Assignment to-be-determined    

Important

Envoyez uniquement les propriétés modifiées dans les demandes de mise à jour. Pour plus d’informations, voir Mise à jour de base.

  1. Définissez explicitement une propriété unique, le numéro de téléphone principal. Notez qu’il s’agit d’une demande PUT et que la clé JSON appelée value est utilisée lors de l’exécution d’opérations sur différentes propriétés.

Demande

PUT https://[Organization URI]/api/data/v9.0/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1 HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
{  
  "value": "555-0105"  
}  

Réponse

HTTP/1.1 204 No Content  

Sortie de la console

Contact 'Peter Cambel' phone number updated.  
  1. Récupérez la même propriété unique, le numéro de téléphone principal. Notez de nouveau l’utilisation d’une clé nommée value.

Demande

GET https://[Organization URI]/api/data/v9.0/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1 HTTP/1.1  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

Réponse

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0  
{   
   "@odata.context":"https://[Organization URI]/api/data/v9.0/$metadata#contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1",  
   "value":"555-0105"  
}    

Sortie de la console

Contact's telephone# is: 555-0105.  
  1. Créez un contact similaire mais retournez également les informations sur l’instance dans la même opération. Cette dernière fonctionnalité est activée par l’en-tête Prefer: return=representation.

Demande

POST https://[Organization URI]/api/data/v9.0/contacts?$select=fullname,annualincome,jobtitle,contactid HTTP/1.1  
OData-Version: 4.0  
Content-Type: application/json; charset=utf-8  
Prefer: return=representation  
{  
  "firstname": "Peter_Alt",  
  "lastname": "Cambel",  
  "jobtitle": "Junior Developer",  
  "annualincome": 80000,  
  "telephone1": "555-0110"  
 }    

Réponse

HTTP/1.1 201 Created  
Content-Type: application/json; odata.metadata=minimal  
Preference-Applied: return=representation  
OData-Version: 4.0  
{  
  "@odata.context":"https://[Organization URI]/api/data/v9.0/$metadata#contacts/$entity","@odata.etag":"W/\"758870\"","_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03","annualincome":80000.0000,"contactid":"199250b7-6cbe-e611-80f7-00155da84c08","jobtitle":"Junior Developer","fullname":"Peter_Alt Cambel"  
}    

Sortie de la console

Contact 'Peter_Alt Cambel' created:  
       Annual income: 80000  
       Job title: Junior Developer  
Contact URI: https://[Organization URI]/api/data/v9.0/contacts(199250b7-6cbe-e611-80f7-00155da84c08)  
  1. Mettez à jour ce contact similaire et retournez également les informations sur l’instance dans la même opération. Ici aussi, cette fonctionnalité est activée par l’en-tête Prefer: return=representation.

Demande

POST https://[Organization URI]/api/data/v9.0/contacts?$select=fullname,annualincome,jobtitle,contactid HTTP/1.1  
OData-Version: 4.0  
Content-Type: application/json; charset=utf-8  
Prefer: return=representation  
{  
  "firstname": "Peter_Alt",  
  "lastname": "Cambel",  
  "jobtitle": "Junior Developer",  
  "annualincome": 80000,  
  "telephone1": "555-0110"  
}    

Réponse

HTTP/1.1 201 Created  
Content-Type: application/json; odata.metadata=minimal  
Preference-Applied: return=representation  
OData-Version: 4.0  
{  
  "@odata.context":"https://[Organization URI]/api/data/v9.0/$metadata#contacts/$entity","@odata.etag":"W/\"758870\"","_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03","annualincome":80000.0000,"contactid":"199250b7-6cbe-e611-80f7-00155da84c08","jobtitle":"Junior Developer","fullname":"Peter_Alt Cambel"  
}    

Sortie de la console

Contact 'Peter_Alt Cambel' updated:  
        Annual income: 95000  
        Job title: Senior Developer   

Section 2 : Créer avec association

Cette section crée une nouvelle instance de compte nommée Contoso, Ltd. et l’associe à un contact existant, Peter Cambel, qui a été créé à la Section 1. Cette création et cette association sont effectuées en une seule opération POST.

  1. Créez le compte Contoso, Ltd. et définissez son attribut de contact principal sur le contact existant Peter Cambel. L’annotation @odata.bind indique qu’une association est créée, associant ici la propriété de navigation à valeur unique primarycontactid à un contact existant, Peter Cambel.

Demande

POST https://[Organization URI]/api/data/v9.0/accounts HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
{  
  "name": "Contoso Inc",  
  "telephone1": "555-5555",  
  "primarycontactid@odata.bind": "https://[Organization URI]/api/data/v9.0/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)"  
}    

Réponse

HTTP/1.1 204 No Content  
OData-Version: 4.0  
OData-EntityId: https://[Organization URI]/api/data/v9.0/accounts(65f77a42-5f0e-e611-80e0-00155da84c03)    

Sortie de la console

Account 'Contoso Inc' created.  
  1. Récupérez le contact principal du compte Contoso, Ltd., de nouveau à l'aide de $expand avec la propriété de navigation à valeur unique primarycontactid pour accéder à l'enregistrement contact EntityType associé.

Demande

GET https://[Organization URI]/api/data/v9.0/accounts(65f77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=primarycontactid($select=fullname,jobtitle,annualincome) HTTP/1.1  
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":"https://[Organization URI]/api/data/v9.0/$metadata#accounts(name,primarycontactid,primarycontactid(fullname,jobtitle,annualincome))/$entity",  
       "@odata.etag":"W/\"628886\"",  
       "name":"Contoso Inc",  
       "accountid":"65f77a42-5f0e-e611-80e0-00155da84c03",  
       "primarycontactid":{   
          "@odata.etag":"W/\"628885\"",  
          "fullname":"Peter Cambel",  
          "jobtitle":"Senior Developer",  
          "annualincome":95000.0000,  
          "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03",  
          "contactid":"60f77a42-5f0e-e611-80e0-00155da84c03"  
     }  
}    

Sortie de la console

Account 'Contoso Inc' has primary contact 'Peter Cambel':  
    Job title: Senior Developer  
    Income: 95000    

Cette section montre comment créer une ligne de table et une ligne associée, dans une seule requête POST. En utilisant cette méthode, toutes les lignes sont nouvellement créées ; il n’y a pas de lignes existantes à associer. Cette approche a deux avantages. Elle est plus efficace, en remplaçant plusieurs opérations de création et d’association plus simples par une opération combinée. En outre, elle est atomique, car soit l’opération entière aboutit et tous les objets associés sont créés, soit l’opération échoue et aucun n’est créé.

Cette section crée un compte, son contact principal, et un ensemble de tâches pour ce contact en une requête.

  1. Créez le compte Fourth Coffee et son contact principal Susie Curtis et ses trois tâches associées en une opération. Notez l’utilisation de la propriété à valeur unique primarycontactid et la propriété de navigation à valeur de collection Contact_Tasks pour définir cette relation, respectivement. Les propriétés de navigation à valeur unique prennent la valeur d’un objet, alors que les propriétés de navigation à valeur de collection prennent la valeur d’un tableau.

Demande

POST https://[Organization URI]/api/data/v9.0/accounts HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
{  
  "name": "Fourth Coffee",  
  "primarycontactid": {  
  "firstname": "Susie",  
  "lastname": "Curtis",  
  "jobtitle": "Coffee Master",  
  "annualincome": 48000,  
  "Contact_Tasks": [  
  {  
      "subject": "Sign invoice",  
      "description": "Invoice #12321",  
      "scheduledend": "2016-04-19T00:00:00-07:00"  
   },  
   {  
      "subject": "Setup new display",  
      "description": "Theme is - Spring is in the air",  
      "scheduledstart": "2016-04-20T00:00:00-07:00"  
   },  
   {  
      "subject": "Conduct training",  
      "description": "Train team on making our new blended coffee",  
      "scheduledstart": "2016-06-01T00:00:00-07:00"  
    }  
  ]  
 }  
}    

Réponse

HTTP/1.1 204 No Content  
OData-Version: 4.0  
OData-EntityId: https://[Organization URI]/api/data/v9.0/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)    

Sortie de la console

Account 'Fourth Coffee' created.  
  1. Récupérez de manière sélective le compte nouvellement créé Fourth Coffee et son contact principal. Une extension est exécutée sur la propriété de navigation à valeur unique primarycontactid.

Demande

GET https://[Organization URI]/api/data/v9.0/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=primarycontactid($select=fullname,jobtitle,annualincome) HTTP/1.1  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0    

Réponse

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0   
{   
   "@odata.context":"https://[Organization URI]/api/data/v9.0/$metadata#accounts(name,primarycontactid,primarycontactid(fullname,jobtitle,annualincome))/$entity",  
   "@odata.etag":"W/\"628902\"",  
   "name":"Fourth Coffee",  
   "accountid":"6af77a42-5f0e-e611-80e0-00155da84c03",  
   "primarycontactid":{   
     "@odata.etag":"W/\"628892\"",  
     "fullname":"Susie Curtis",  
     "jobtitle":"Coffee Master",  
     "annualincome":48000.0000,  
     "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03",  
     "contactid":"6bf77a42-5f0e-e611-80e0-00155da84c03"  
  }  
}    

Sortie de la console

Account 'Fourth Coffee' has primary contact 'Susie Curtis':  
       Job title: Coffee Master  
       Income: 48000    
  1. Extrayez de manière sélective les tâches associées au contact principal récupéré dans l’opération précédente. Une extension est exécutée sur la propriété de navigation à valeur de collection Contact_Tasks.

Demande

GET https://[Organization URI]/api/data/v9.0/contacts(6bf77a42-5f0e-e611-80e0-00155da84c03)?$select=fullname,&$expand=Contact_Tasks($select=subject,description,scheduledstart,scheduledend) HTTP/1.1  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0    

Réponse

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0   
{   
    "@odata.context":"https://[Organization URI]/api/data/v9.0/$metadata#contacts(fullname,Contact_Tasks,Contact_Tasks(subject,description,scheduledstart,scheduledend))/$entity",  
    "@odata.etag":"W/\"628892\"",  
    "fullname":"Susie Curtis",  
    "contactid":"6bf77a42-5f0e-e611-80e0-00155da84c03",  
    "Contact_Tasks":[   
      {   
         "@odata.etag":"W/\"628903\"",  
         "subject":"Sign invoice",  
         "description":"Invoice #12321",  
         "scheduledstart":"2016-04-19T00:00:00Z",  
         "scheduledend":"2016-04-19T00:00:00Z",  
         "activityid":"6cf77a42-5f0e-e611-80e0-00155da84c03"  
      },  
      {   
         "@odata.etag":"W/\"628905\"",  
         "subject":"Setup new display",  
         "description":"Theme is - Spring is in the air",  
         "scheduledstart":"2016-04-20T00:00:00Z",  
         "scheduledend":"2016-04-20T00:00:00Z",  
         "activityid":"6df77a42-5f0e-e611-80e0-00155da84c03"  
      },  
          {   
             "@odata.etag":"W/\"628907\"",  
             "subject":"Conduct training",  
             "description":"Train team on making our new blended coffee",  
             "scheduledstart":"2016-06-01T00:00:00Z",  
             "scheduledend":"2016-06-01T00:00:00Z",  
             "activityid":"6ef77a42-5f0e-e611-80e0-00155da84c03"  
          }  
       ]  
    }    

Sortie de la console

Contact 'Susie Curtis' has the following assigned tasks:  
Subject: Sign invoice,  
        Description: Invoice #12321  
        Start: 4/19/2016  
        End: 4/19/2016  
  
Subject: Setup new display,  
        Description: Theme is - Spring is in the air  
        Start: 4/20/2016  
        End: 4/20/2016  
  
Subject: Conduct training  
        Description: Train team on making our new blended coffee,  
        Start: 6/1/2016  
        End: 6/1/2016    

Section 4 : Associer et dissocier des entités existantes

Cette section montre comment associer et dissocier des lignes de table existantes. Former une association nécessite l’utilisation d’une URI de référence et d’un objet de relation, qui sont ensuite envoyés dans une demande POST. Dissocier nécessite d’envoyer une demande DELETE à l’URI de référence pour cette association. Une association un-à-plusieurs est d’abord formée entre un contact et un compte. Puis une association plusieurs à plusieurs est formée entre un concurrent et une ou plusieurs opportunités.

  1. Ajoutez Peter Cambel en tant que contact du compte Fourth Coffee à l’aide de la propriété de navigation à valeur de collection contact_customer_accounts. Notez l’utilisation d’une clé spéciale @odata.id pour spécifier l’enregistrement associé.

Demande

POST https://[Organization URI]/api/data/v9.0/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts/$ref HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
{  
  "@odata.id": "https://[Organization URI]/api/data/v9.0/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)"  
}    

Réponse

HTTP/1.1 204 No Content    

Sortie de la console

Contact 'Peter Cambel' associated to account 'Fourth Coffee'.  
  1. Confirmez l’opération précédente en récupérant la collection de contacts pour le compte Fourth Coffee. La réponse contient le tableau avec un élément unique, le contact récemment affecté Peter Cambel.

Demande

GET https://[Organization URI]/api/data/v9.0/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts?$select=fullname,jobtitle HTTP/1.1  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0    

Réponse

    HTTP/1.1 200 OK  
    Content-Type: application/json; odata.metadata=minimal  
    OData-Version: 4.0   
    {  
      "@odata.context":"https://[Organization URI]/api/data/v9.0/$metadata#contacts(fullname,jobtitle)","value":[  
        {  
          "@odata.etag":"W/\"632481\"","fullname":"Peter Cambel","jobtitle":"Senior Developer","contactid":"00b6e0e2-b010-e611-80e1-00155da84c03"  
        }  
      ]  
    }    

Sortie de la console

    Contact list for account 'Fourth Coffee':  
    Name: Peter Cambel, Job title: Senior Developer    
  1. Supprimez l’association qui vient d’être créée entre le compte Fourth Coffee et le contact Peter Cambel.

Demande

DELETE https://[Organization URI]/api/data/v9.0/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts/$ref?$id=https://[Organization URI]/api/data/v9.0/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0    

Réponse

HTTP/1.1 204 No Content    

Sortie de la console

Contact 'Peter Cambel' dissociated from account 'Fourth Coffee'.  
  1. Créez un concurrent appelé Adventure Works.

Demande

POST https://[Organization URI]/api/data/v9.0/competitors HTTP/1.1  
    Content-Type: application/json  
    OData-MaxVersion: 4.0  
    OData-Version: 4.0  
    {  
      "name": "Adventure Works",  
      "strengths": "Strong promoter of private tours for multi-day outdoor adventures"  
    }    

Réponse

HTTP/1.1 204 No Content  
OData-Version: 4.0  
OData-EntityId: https://[Organization URI]/api/data/v9.0/accounts(77f77a42-5f0e-e611-80e0-00155da84c03)    

Sortie de la console

Competitor 'Adventure Works' created.  
  1. Créez une opportunité appelée River rafting adventure.

Demande

POST https://[Organization URI]/api/data/v9.0/opportunities HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
{  
  "name": "River rafting adventure",  
  "description": "Sales team on a river-rafting offsite and team building"  
}    

Réponse

HTTP/1.1 204 No Content  
OData-Version: 4.0  
OData-EntityId: https://[Organization URI]/api/data/v9.0/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)    

Sortie de la console

Opportunity 'River rafting adventure' created.  
  1. Associez cette nouvelle opportunité à ce nouveau concurrent. Notez que la syntaxe générale utilisée dans cette association plusieurs à plusieurs est la même que celle qui a été utilisée dans l’association un-à-plusieurs précédente.

Demande

POST https://[Organization URI]/api/data/v9.0/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)/opportunitycompetitors_association/$ref HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
{  
  "@odata.id": "https://[Organization URI]/api/data/v9.0/competitors(77f77a42-5f0e-e611-80e0-00155da84c03)"  
}    

Réponse

HTTP/1.1 204 No Content    

Sortie de la console

Opportunity 'River rafting adventure' associated with competitor 'Adventure Works'.  
  1. Extrayez sélectivement toutes les opportunités associées au concurrent Adventure Works. Un tableau est renvoyé contenant une seule opportunité.

Demande

GET https://[Organization URI]/api/data/v9.0/competitors(77f77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=opportunitycompetitors_association($select=name,description) HTTP/1.1  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0    

Réponse

HTTP/1.1 200 OK  
{   
   "@odata.context":"https://[Organization URI]/api/data/v9.0/$metadata#competitors(name,opportunitycompetitors_association,opportunitycompetitors_association(name,description))/$entity",  
   "@odata.etag":"W/\"628913\"",  
   "name":"Adventure Works",  
   "competitorid":"77f77a42-5f0e-e611-80e0-00155da84c03",  
   "opportunitycompetitors_association":[   
      {   
        "@odata.etag":"W/\"628917\"",  
        "name":"River rafting adventure",  
        "description":"Sales team on a river-rafting offsite and team building",  
        "opportunityid":"7cf77a42-5f0e-e611-80e0-00155da84c03"  
      }  
   ]  
}    

Sortie de la console

Competitor 'Adventure Works' has the following opportunities:  
       Name: River rafting adventure,  
       Description: Sales team on a river-rafting offsite and team building    
  1. Dissociez l’opportunité du concurrent. Notez à nouveau, qu’il s’agit de la même syntaxe générale que pour supprimer une association un-à-plusieurs.

Demande

DELETE https://[Organization URI]/api/data/v9.0/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)/opportunitycompetitors_association/$ref?$id=https://[Token-CRM-Org-Name]/Contoso/api/data/v8.1/competitors(77f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0    

Response

HTTP/1.1 204 No Content    

Sortie de la console

Opportunity 'River rafting adventure' disassociated from competitor 'Adventure Works'.  

Section 5 : Supprimer des lignes de tableau

  1. Chaque élément de la collection d’URL de ligne est supprimé. Le premier est un enregistrement de contact pour Peter Cambel.

Demande

DELETE https://[Organization URI]/api/data/v9.0/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1  
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0    

Réponse

HTTP/1.1 204 No Content    
  1. Les itérations suivantes dans la collection suppriment les enregistrements restants.

Demande

DELETE https://[Organization URI]/api/data/v9.0/accounts(65f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1  
. . .  
  
DELETE https://[Organization URI]/api/data/v9.0/accounts(6af77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1  
. . .  
  
DELETE https://[Organization URI]/api/data/v9.0/contacts(6bf77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1  
. . .  
  
DELETE https://[Organization URI]/api/data/v9.0/competitors(77f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1  
. . .  
  
DELETE https://[Organization URI]/api/data/v9.0/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1  
. . .    

Voir aussi

Utilisation de l’API web Dataverse
Créer une ligne de table à l’aide de l’API web
Récupérer une ligne de table à l’aide de l’API web
Mettre à jour et supprimer des lignes de table à l’aide de l’API web
[Associer et dissocier des lignes de tables à l’aide de l’API web](associate-disassociate-table rows-using-web-api.md)
Exemple d’opérations de base de l’API Web (C#)

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).