데이터 전송 형식(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 환경과 쉽게 통합됩니다.
참고 |
---|
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 데이터 서비스 프레임워크)