Sdílet prostřednictvím


Datenübertragungsformat (ADO.NET Data Services-Framework)

Im ADO.NET Data Services-Framework werden HTTP-Anforderungen und -Antworten in mehreren Datenformaten unterstützt, um verschiedene Clientagenten zu ermöglichen. Derzeit können Daten im ADO.NET Data Services-Framework in den Formaten JavaScript Object Notation (JSON) und Atom Publishing Protocol (AtomPub) dargestellt werden.

Das Standarddarstellungsformat ist AtomPub, das durch ein festes Mapping des Entity Data Model (EDM) zur XML-Syntax von AtomPub erreicht wird. Folgender URI verarbeitet einen Customer mit der ID 'ADATUMCORP':

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

Der Datendienst antwortet mit der im Folgenden angezeigten Nutzlast:

<?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>

Die Customer-Entität im vorherigen Beispiel enthält sowohl Eigenschaften mit primitiven Werten (z. B. den CompanyName zugewiesenen Zeichenfolgenwert) als auch Eigenschaften, die auf andere Ressourcen verweisen, z. B. Orders.

Der Client-Agent gibt durch den Accept-Header der HTTP-Anforderung das Format der Datenübertragung an. Für die vorherige Anforderung wurde "application/atom+xml" verwendet. Indem der Accept-Header auf application/json festgelegt wurde, erhält der Clientagent folgende Ergebnisse im JSON-Format:

{
   "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"
        }
    }
   }
}

Obwohl es sich um semantische Entsprechungen handelt, können die meisten JSON-Versionen einfach in JavaScript-Umgebungen, wie z. B. AJAX-basierte Anwendungen, integriert werden.

NoteHinweis

Die Nutzlast ist in der festen "d"-Eigenschaft der HTTP-Anforderung enthalten, um die versehentliche Verwendung der von ADO.NET Data Services erzeugten JSON-Nutzlasten zu vermeiden.

Wenn der Client-Agent eine PUT- oder POST-Anforderung ausgibt, kann die Nutzlast ein beliebiges unterstütztes Datenformat aufweisen. Der Client-Agent muss das Datendienstformat der Anforderung angeben, indem der Content-Type-Header auf den entsprechenden MIME-Typ festgelegt wird. Weitere Informationen finden Sie unter HttpWebRequest PUT (ADO.NET Data Services-Framework) und HttpWebRequest POST (ADO.NET Data Services-Framework).

Siehe auch

Konzepte

Einfaches Adressierungsschema für Daten mit URIs (ADO.NET Data Services-Framework)
HttpWebRequest-GET (ADO.NET Data Services-Framework)
.NET-Clientbibliothek (ADO.NET Data Services-Framework)

Weitere Ressourcen

ADO.NET Entity Framework