다음을 통해 공유


데이터 전송 형식(ADO.NET 데이터 서비스 프레임워크)

ADO.NET 데이터 서비스 프레임워크는 다양한 클라이언트 에이전트를 고려하여 HTTP 요청 및 응답에 대해 여러 가지 데이터 형식을 지원합니다. 현재 ADO.NET 데이터 서비스 프레임워크는 JSON(JavaScript Object Notation) 및 AtomPub(Atom Publishing Protocol) 형식으로 데이터를 나타낼 수 있습니다.

기본 표시 형식은 EDM(엔터티 데이터 모델)과 AtomPub XML 구문 사이의 고정 매핑을 통해 생성되는 AtomPub입니다. ID가 'ADATUMCORP'Customer의 주소를 지정하는 URI는 다음과 같습니다.

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

데이터 서비스는 아래와 같은 페이로드를 사용하여 응답합니다.

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

위의 예제에서 Customer 엔터티는 CompanyName에 할당된 문자열 값처럼 기본 값을 사용하는 속성과 Orders처럼 다른 리소스를 가리키는 속성을 모두 포함합니다.

클라이언트 에이전트는 데이터 전송 형식을 HTTP 요청의 Accept 헤더를 통해 지정합니다. 위의 요청에는 application/atom+xml 형식이 사용되었습니다. Accept 헤더를 application/json으로 설정하면 클라이언트 에이전트는 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"
        }
    }
   }
}

의미 체계는 동일하지만 대부분의 JSON 버전은 AJAX 기반 응용 프로그램 등의 JavaScript 환경과 쉽게 통합됩니다.

Note참고

ADO.NET 데이터 서비스에서 생성한 JSON 페이로드가 의도하지 않은 방향으로 사용되는 것을 방지하기 위해 페이로드는 HTTP 요청의 고정 "d" 속성에 포함됩니다.

클라이언트 에이전트가 PUT 또는 POST 요청을 실행할 경우 요청의 페이로드는 지원되는 모든 데이터 형식 중 하나일 수 있습니다. 클라이언트 에이전트는 Content-Type 헤더를 적절한 MIME 형식으로 설정하여 요청의 데이터 서비스 형식을 나타내야 합니다. 자세한 내용은 HttpWebRequest PUT(ADO.NET 데이터 서비스 프레임워크)HttpWebRequest POST(ADO.NET 데이터 서비스 프레임워크)를 참조하십시오.

참고 항목

개념

URI를 사용한 단순한 데이터 주소 지정 스키마(ADO.NET 데이터 서비스 프레임워크)
HttpWebRequest GET(ADO.NET 데이터 서비스 프레임워크)
.NET 클라이언트 라이브러리(ADO.NET 데이터 서비스 프레임워크)

관련 자료

ADO.NET Entity Framework