Formato di trasporto dati (framework di ADO.NET Data Services)

Il framework di ADO.NET Data Services supporta richieste e risposte HTTP in più formati di dati per adattarsi a diversi agenti client. Il framework di ADO.NET Data Services attualmente può rappresentare dati nei protocolli AtomPub (Atom Publishing) e JSON (JavaScript Object Notation).

Il formato di rappresentazione predefinito è AtomPub generato da un mapping fisso del modello Entity Data Model (EDM) alla sintassi XML di AtomPub. Un URI che indirizza un'entità Customer con Id 'ADATUMCORP' è:

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

Il servizio dati risponde con il payload riportato di seguito:

<?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 dell'esempio precedente contiene entrambe le proprietà con valori primitivi, ad esempio il valore stringa assegnato a CompanyName e le proprietà che puntano ad altre risorse quali Orders.

L'agente client specifica il formato di trasporto dei dati mediante l'intestazione Accept nella richiesta HTTP. Nella richiesta precedente è stato utilizzato il tipo application/atom+xml. Impostando l'intestazione Accept su application/json, l'agente client ottiene i risultati seguenti in formato 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"
        }
    }
   }
}

Sebbene semanticamente equivalenti, la maggioranza delle versioni JSON si integrano facilmente con ambienti JavaScript, quali le applicazioni basate su Ajax.

NoteNota

Per limitare l'utilizzo imprevisto dei payload JSON creati da ADO.NET Data Services, il payload viene contenuto all'interno della proprietà fissa "d" della richiesta HTTP.

Se l'agente client pubblica una richiesta PUT o POST, il payload della richiesta può essere in uno dei formati dati supportati. L'agente client deve indicare il formato del servizio dati della richiesta impostando l'intestazione Content-Type sul tipo MIME appropriato. Per ulteriori informazioni, vedere HttpWebRequest PUT (framework di ADO.NET Data Services) e HttpWebRequest POST (framework di ADO.NET Data Services).

Vedere anche

Concetti

Schema di indirizzamento semplice di dati con URI uniformi (framework di ADO.NET Data Services)
HttpWebRequest GET (framework di ADO.NET Data Services)
.Libreria client NET (framework di ADO.NET Data Services)

Altre risorse

ADO.NET Entity Framework