영업: 1-800-867-1380

테이블 서비스 작업의 페이로드 형식

업데이트 날짜: 2014년 8월

테이블 서비스 REST API는 ATOM 및 JSON을 OData 페이로드 형식으로 지원합니다. ATOM 프로토콜은 모든 버전의 Azure 저장소 서비스에 지원되지만, JSON 프로토콜은 2013-08-15 이후 버전에만 지원됩니다.

note참고
REST API 작업 테이블 ACL 가져오기, 테이블 ACL 설정, 테이블 서비스 속성 가져오기테이블 서비스 속성 설정은 OData API가 아니며 현재 JSON을 지원하지 않습니다.

ATOM 또는 JSON 형식을 지정하려면 Content-TypeAccept 헤더에 적절한 값을 지정합니다(아래 설명 참조). 다음 제약 조건에 유의하세요.

  • Content-Type 헤더는 OData 페이로드가 포함된 모든 요청에 필요합니다.

  • Accept 헤더가 제공되지 않은 경우 응답의 콘텐츠 형식은 기본적으로 application/atom+xml이 됩니다.

  • OData 데이터 서비스 버전이 3.0으로 설정된 경우 $format URI 매개 변수를 지정하면 Accept 요청 헤더에 지정된 값이 재정의됩니다. OData 서비스 버전에 대한 자세한 내용은 OData 데이터 서비스 버전 헤더 설정을 참조하세요.

페이로드 형식을 지정하려면 아래의 표에 따라 Content-TypeAccept 요청 헤더를 설정하세요.

 

페이로드 형식 Content-Type 헤더 Accept 헤더 데이터 서비스 버전(REST API 버전) 지원되는 API

Atom

application/atom+xml

application/atom+xml

1.0(모든 버전)

2.0(2011-08-18 이상)

3.0(2013-08-15 이상)

테이블 쿼리

테이블 만들기

테이블 삭제

엔터티 쿼리

엔터티 삽입

엔터티 삽입 또는 병합

엔터티 삽입 또는 교체

엔터티 업데이트

엔터티 병합

엔터티 삭제

JSON

application/json

application/json;odata=nometadata

application/json;odata=minimalmetadata

application/json;odata=fullmetadata

자세한 내용은 아래의 JSON 형식 섹션을 참조하세요.

3.0(2013-08-15 이상)

테이블 쿼리

테이블 만들기

테이블 삭제

엔터티 쿼리

엔터티 삽입

엔터티 삽입 또는 병합

엔터티 삽입 또는 교체

엔터티 업데이트

엔터티 병합

엔터티 삭제

XML

application/xml

application/xml

해당 없음

테이블 ACL 가져오기

테이블 ACL 설정

테이블 서비스 속성 가져오기

테이블 서비스 속성 설정

Atom피드라는 관련 정보의 컬렉션을 설명하는 XML 기반 문서 형식입니다. 피드는 많은 항목으로 구성되어 있습니다. AtomPub는 항목과 피드가 나타내는 리소스의 범주화, 그룹화, 편집 및 검색이 용이하도록 항목과 피드의 추가 형식 구조를 정의합니다. 그러나 Atom은 구조적 데이터가 피드로 인코딩되는 방법을 정의하지 않으므로, OData는 OData 기반 서비스에서 구조적 콘텐츠를 전송할 수 있도록 하기 위해 Atom 피드에서 구조적 데이터를 나타내기 위한 규칙의 집합을 정의합니다.

예를 들어 다음 예제 OData 항목에서는 REST API를 사용하여 Azure 테이블 저장소에 엔터티를 삽입하는 요청을 통해 전송된 Atom 형식을 보여 줍니다(삽입 작업에 대한 자세한 내용은 엔터티 삽입 참조).

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <title />
  <updated>2008-09-18T23:46:19.3857256Z<updated/>
  <author>
    <name />
  </author>
  <id />
  <content type="application/xml">
    <m:properties>
      <d:Address>Mountain View</d:Address>
      <d:Age m:type="Edm.Int32">23</d:Age>
      <d:AmountDue m:type="Edm.Double">200.23</d:AmountDue>
      <d:BinaryData m:type="Edm.Binary" m:null="true" />
      <d:CustomerCode m:type="Edm.Guid">c9da6455-213d-42c9-9a79-3e9149a57833</d:CustomerCode>
      <d:CustomerSince m:type="Edm.DateTime">2008-07-10T00:00:00</d:CustomerSince>
      <d:IsActive m:type="Edm.Boolean">true</d:IsActive>
      <d:NumOfOrders m:type="Edm.Int64">255</d:NumOfOrders>
      <d:PartitionKey>mypartitionkey</d:PartitionKey>
      <d:RowKey>myrowkey1</d:RowKey>
      <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>
    </m:properties>
  </content>
</entry>

클라이언트가 테이블 저장소에서 엔터티의 집합을 쿼리할 때 서비스는 Atom 항목의 컬렉션인 Atom 피드로 응답합니다(쿼리 작업에 대한 자세한 내용은 엔터티 쿼리 참조).

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xml:base="https://myaccount.table.core.windows.net/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Customers</title>
  <id>https://myaccount.table.core.windows.net/Customers</id>
  <updated>2008-10-01T15:26:13Z</updated>
  <link rel="self" title="Customers" href="Customers" />
  <entry m:etag="W/&quot;0x5B168C7B6E589D2&quot;">
  <id>https://myaccount.table.core.windows.net/Customers(PartitionKey='Customer03',RowKey='Name')</id>
    <title type="text"></title>
    <updated>2008-10-01T15:26:13Z</updated>
    <author>
      <name />
    </author>
    <link rel="edit" title="Customers" href="Customers (PartitionKey='Customer03',RowKey='Name')" />
    <category term="myaccount.Customers" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
    <content type="application/xml">
      <m:properties>
        <d:PartitionKey>Customer03</d:PartitionKey>
        <d:RowKey>Name</d:RowKey>        <d:CustomerSince m:type="Edm.DateTime">2008-10-01T15:25:05.2852025Z</d:CustomerSince>
      </m:properties>
    </content>
  </entry>
</feed>

속성 데이터 형식은 OData 프로토콜 사양에 따라 정의됩니다. 이 사양으로 정의된 일부 데이터 형식은 테이블 서비스에서 지원되지 않습니다. 지원되는 데이터 형식 및 CLR(공용 언어 런타임) 형식으로 매핑되는 방법에 대한 자세한 내용은 테이블 서비스 데이터 모델 이해를 참조하세요.

속성은 명시적인 데이터 형식을 사용하거나 사용하지 않고 지정될 수 있습니다. 형식이 생략된 경우, 속성이 자동으로 Edm.String 데이터 형식으로 생성됩니다.

명시적 형식을 사용해서 속성이 생성된 경우 엔터티를 반환하는 쿼리에 ATOM 피드 내의 형식이 포함되므로 필요에 따라 기존 속성의 형식을 확인할 수 있습니다. 속성에 따라 필터링되는 쿼리를 생성할 때는 해당 속성의 형식을 아는 것이 중요합니다. 자세한 내용은 테이블 및 엔터티 쿼리를 참조하세요.

OData는 위에서 설명한 ATOM 형식과 유사한 이러한 이름-값 쌍에 대한 일반적인 규칙을 정의하여 JSON 형식을 확장합니다. OData는 ID, 형식 및 링크와 같은 제어 정보에 대한 정식 주석의 집합을 정의합니다. JSON 형식에 대한 자세한 내용은 JSON 소개를 참조하세요.

OData의 JSON 형식을 사용하는 경우의 주요 이점은 페이로드의 예측 가능한 부분을 생략하여 페이로드 크기를 줄일 수 있다는 것입니다. 수신하는 쪽에서 이 데이터를 다시 구성하기 위해 식을 사용하여 누락된 링크, 형식 정보 및 제어 데이터를 계산합니다. 페이로드에서 생략되는 항목을 제어하기 위해 Accept 헤더의 일부로 지정할 수 있는 세 가지 수준이 있습니다.

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

다음과 같은 ODATA 주석이 Azure 테이블 서비스에서 지원됩니다.

  • odata.metadata: 컬렉션, 엔터티, 기본 값 또는 서비스 문서에 대한 메타데이터 URL입니다.

  • odata.id: 일반적으로 리소스에 대한 URL인 엔터티 ID입니다.

  • odata.editlink: 엔터티를 업데이트할 수 있고 odata.id가 엔터티를 편집하는 데 사용할 수 있는 URL을 나타내지 않는 경우 엔터티를 편집/업데이트하는 데 사용되는 링크입니다.

  • odata.type: 포함하는 개체의 형식 이름입니다.

  • odata.etag: 엔터티의 ETag입니다.

  • PropertyName@odata.type, 사용자 지정 속성의 경우: 대상 속성의 형식 이름입니다.

  • PropertyName@odata.type, 시스템 속성의 경우(, PrimaryKey, RowKeyTimestamp 속성): 대상 속성의 형식 이름입니다.

각 수준에 포함된 정보는 다음 표에 요약되어 있습니다.

 

Annotations

odata=fullmetadata

odata=minimalmetadata

odata=nometadata

odata.metadata

아니요

odata.id

아니요

아니요

odata.editlink

아니요

아니요

odata.type

아니요

아니요

odata.etag

아니요

아니요

PropertyName@odata.type, 사용자 지정 속성의 경우

아니요

PropertyName@odata.type, 시스템 속성의 경우

아니요

아니요

odata.type 주석은 OData JSON 형식에서 공개 속성의 형식을 확인하는 데 사용됩니다. 이 주석은 아래의 조건이 모두 충족되는 경우 존재합니다.

  • JSON 제어 수준이 JSON 형식 섹션에 설명된 대로 odata=minimalmetadata 또는 odata=fullmetadata로 설정되어 있습니다.

  • 속성이 사용자 지정 속성입니다. Azure 테이블의 경우 PartitionKey, RowKeyTimestamp 속성만 시스템 속성이고 이러한 속성의 형식 정보는 $metadata에서 선언됩니다. 이러한 속성의 형식 주석은 제어 수준이 odata=fullmetadata로 설정된 경우에만 존재합니다. 자세한 내용은 테이블 서비스 데이터 모델 이해를 참조하세요.

  • 속성의 형식은 아래의 표에 요약되어 있는 형식 검색 추론을 통해 확인할 수 없습니다.

 

Edm 형식

odata.type 주석 필요

JSON 형식

Edm.Binary

문자열

Edm.Boolean

아니요

리터럴

Edm.DateTime

문자열

Edm.Double

아니요

숫자(소수점 포함)

Edm.Guid

문자열

Edm.Int32

아니요

숫자(소수점 포함 안 됨)

Edm.Int64

문자열

Edm.String

아니요

문자열

다음 JSON 엔터티는 8가지 속성 형식의 예를 각각 제공합니다.

{
  "PartitionKey":"mypartitionkey",
  "RowKey":"myrowkey",
  "DateTimeProperty@odata.type":"Edm.DateTime",
  "DateTimeProperty":"2013-08-02T17:37:43.9004348Z",
  "BoolProperty":false,
  "BinaryProperty@odata.type":"Edm.Binary",
  "BinaryProperty":"AQIDBA==",
  "DoubleProperty":1234.1234,
  "GuidProperty@odata.type":"Edm.Guid",
  "GuidProperty":"4185404a-5818-48c3-b9be-f217df0dba6f",
  "Int32Property":1234,
  "Int64Property@odata.type":"Edm.Int64",
  "Int64Property":"123456789012",
  "StringProperty":"test"
}

PartitionKeyRowKey는 모든 테이블 행이 정의해야 하는 시스템 속성이므로 이러한 속성의 형식 주석은 엔터티에 나타나지 않습니다. 이러한 속성은 Edm.String 형식으로 미리 정의됩니다. 그러나 다른 속성은 사용자 지정 속성이므로 위의 표에 있는 지원되는 기본 형식 중 하나에 해당하는 형식 정보를 포함합니다.

다음 예제 OData 항목에서는 Azure 테이블 저장소에 엔터티를 삽입하는 요청으로 전송된 JSON 형식을 보여 줍니다(삽입 작업에 대한 자세한 내용은 엔터티 삽입 참조).

{
  "Address":"Mountain View",
  "Age":23,
  "AmountDue":200.23,
  "CustomerCode@odata.type":"Edm.Guid",
  "CustomerCode":"c9da6455-213d-42c9-9a79-3e9149a57833",
  "CustomerSince@odata.type":"Edm.DateTime",
  "CustomerSince":"2008-07-10T00:00:00",
  "IsActive":true,
  "NumOfOrders@odata.type":"Edm.Int64",
  "NumOfOrders":"255",
  "PartitionKey":"mypartitionkey",
  "RowKey":"myrowkey1",
  "Timestamp":"0001-01-01T00:00:00"
}

클라이언트가 Azure 테이블 저장소에서 엔터티의 집합을 쿼리할 때 서비스는 JSON 페이로드로 응답합니다(쿼리 작업에 대한 자세한 내용은 엔터티 쿼리 참조). 피드에는 메타데이터 없음, 최소 메타데이터 또는 전체 메타데이터라는 세 가지 수준의 정보 중 하나가 포함될 수 있습니다. 다음 예에서는 각 수준의 정보를 보여 줍니다.

메타데이터 없음:

{
  "value":[
    {
      "PartitionKey":"Customer03",
      "RowKey":"Name",
      "Timestamp":"2013-08-09T18:55:48.3402073Z",
      "CustomerSince":"2008-10-01T15:25:05.2852025Z",
    }
}

최소 메타데이터:

{
  "odata.metadata":"https://myaccount.table.core.windows.net/$metadata#Customers,
  "value":[
    {
      "PartitionKey":"Customer03",
      "RowKey":"Name",
      "Timestamp":"2013-08-09T18:55:48.3402073Z",
      "CustomerSince@odata.type":"Edm.DateTime",
      "CustomerSince":"2008-10-01T15:25:05.2852025Z",
    }
}

전체 메타데이터:

{
  "odata.metadata":"https://myaccount.table.core.windows.net/$metadata#Customers",
  "value":[
    {
      "odata.type":"myaccount.Customers",
      "odata.id":"https://myaccount.table.core.windows.net/Customers(PartitionKey='Customer03',RowKey='Name')",
      "odata.etag":"W/\"0x5B168C7B6E589D2\"",
      "odata.editLink":"Customers(PartitionKey='Customer03',RowKey='Name')",
      "PartitionKey":"Customer03,
      "RowKey":"Name",
      "Timestamp@odata.type":"Edm.DateTime",
      "Timestamp":"2013-08-09T18:55:48.3402073Z",
      "CustomerSince@odata.type":"Edm.DateTime",
      "CustomerSince":"2008-10-01T15:25:05.2852025Z",
    }
}

OData JSON 형식에 대한 자세한 내용은 OData JSON 형식 버전 4.0 사양과 [MS-ODATAJSON]: OData 프로토콜 JSON 형식 표준 지원 문서를 참조하세요.

참고 항목

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2015 Microsoft