Format transport de données (ADO.NET Data Services Framework)

ADO.NET Data Services Framework prend en charge les requêtes et réponses HTTP sous plusieurs formats de données pour s'adapter à divers agents du client. Actuellement, ADO.NET Data Services Framework peut représenter des données au format JSON (JavaScript Object Notation) et AtomPub (Atom Publishing Protocol).

Le format de représentation par défaut est AtomPub généré par un mappage fixe du modèle Entity Data Model (EDM) à la syntaxe XML d'AtomPub. Un URI qui adresse un Customer avec l'Id 'ADATUMCORP' est :

http://myserver/data.svc/Customers('ADATUMCORP')

Le service de données répond avec la charge utile indiquée ici :

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<entry xml:base="http://myserver/data.svc/"
    xmlns:ads="https://schemas.microsoft.com/ado/2007/08/dataservices"
    xmlns:adsm="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
    adsm:type="NorthwindModel.Customers" 
    xmlns="http://www.w3.org/2005/Atom">
  <id>http://myserver/data.svc/Customers('ADATUMCORP')</id> 
  <updated /> 
  <title /> 
https://localhost:61243/nw.svc/Customers('ADATUMCORP') <author>
  <name /> 
  </author>
  <link rel="edit" href="//myserver/data.svc/Customers('ADATUMCORP')" 
       title="Customers" /> 
https://localhost:61243/nw.svc/Customers('ADATUMCORP')
       <content type="application/xml">
    <ads:CustomerID>ADATUMCORP</ads:CustomerID> 
    <ads:CompanyName>A. Datum Corporation</ads:CompanyName> 
    <ads:ContactName>Lisa Andrews</ads:ContactName> 
    <ads:ContactTitle>Sales Representative</ads:ContactTitle> 
    <ads:Address>Obere Str. 57</ads:Address> 
    <ads:City>Berlin</ads:City> 
    <ads:Region ads:null="true" /> 
    <ads:PostalCode>12209</ads:PostalCode> 
    <ads:Country>Germany</ads:Country> 
    <ads:Phone>030-0074321</ads:Phone> 
    <ads:Fax>030-0076545</ads:Fax> 
  </content>
  <link rel="related" title="Orders" 
      href="Customers('ADATUMCORP')/Orders" 
      type="application/xml;type=feed" /> 
  <link rel="related" title="CustomerDemographics" 
      href="Customers('ADATUMCORP')/CustomerDemographics" 
      type="application/xml;type=feed" /> 
</entry>

L'entité Customer dans l'exemple précédent contient les deux propriétés avec des valeurs primitives, comme la valeur de la chaîne affectée à CompanyName et aux propriétés qui pointent vers d'autres ressources comme les Orders.

L'agent du client spécifie le format du transport des données par l'en-tête Accept dans la requête HTTP. La requête précédente a utilisé l'application/atom+xml. En définissant l'en-tête Accept sur application/json, l'agent du client obtient les résultats suivants au format JSON :

{
   "d":{
    __metadata: {
        uri: "Customers(\'ADATUMCORP\')",
        type: "NorthwindModel.Customers"
    }, 
    CustomerID: "ADATUMCORP", 
    CompanyName: "A. Datum Corporation",
       ContactName: "Lisa Andrews", 
       ContactTitle: "Sales Representative", 
    Address: "Obere Str. 57", 
    City: "Berlin", 
    Region: null, 
    PostalCode: "12209", 
    Country: "Germany", 
    Phone: "030-0074321", 
    Fax: "030-0076545", 
    Orders: {
        __deferred: {
            uri: "Customers(\'ADATUMCORP\')/Orders"
        }
    }
   }
}

Bien qu'équivalente, d'un point de vue sémantique, la version la plus JSON s'intègre facilement aux environnements JavaScript, comme les applications AJAX.

NoteRemarque

La charge utile est contenue dans la propriété "d" fixe de la requête HTTP afin de limiter l'utilisation inattendue des charges utiles JSON créées par ADO.NET Data Services.

Si l'agent du client émet une demande PUT ou POST, la charge utile de la requête peut être dans n'importe quel format pris en charge. L'agent du client doit indiquer le format du service de données de la requête en définissant l'en-tête Content-Type au type mime approprié. Pour plus d'informations, consultez HttpWebRequest PUT (ADO.NET Data Services Framework) et HttpWebRequest POST (ADO.NET Data Services Framework).

Voir aussi

Concepts

Modèle d'adressage simple pour les données avec des URI uniformes (ADO.NET Data Services Framework)
HttpWebRequest GET (ADO.NET Data Services Framework)
Bibliothèque cliente .NET (ADO.NET Data Services Framework)

Autres ressources

ADO.NET Entity Framework