내보내기(0) 인쇄
모두 확장
이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

엔터티 삽입 또는 교체(REST API)

업데이트 날짜: 2014년 2월

Insert Or Replace Entity 작업은 기존 엔터티를 바꾸거나 테이블에 엔터티가 없을 경우 새 엔터티를 삽입합니다. 이 작업은 엔터티를 삽입하거나 업데이트하기 때문에 upsert 작업이라고도 합니다.

다음과 같이 Insert Or Replace Entity 요청을 생성할 수 있습니다. HTTPS를 사용하는 것이 좋습니다. 다음 값을 사용자의 고유 값으로 바꿉니다.

  • myaccount를 사용자의 저장소 계정 이름으로 바꿉니다.

  • mytable을 사용자의 테이블 이름으로 바꿉니다.

  • myPartitionKeymyRowKey을 엔터티를 업데이트할 파티션 키 또는 행 키 이름으로 바꿉니다.

 

메서드 요청 URI HTTP 버전

PUT

https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey'

HTTP/1.1

에뮬레이트된 저장소 서비스에 대해 요청을 수행할 때는 에뮬레이터 호스트 이름 및 테이블 서비스 포트를 127.0.0.1:10002로 지정하고 뒤에 에뮬레이트된 저장소 계정 이름을 붙입니다.

 

메서드 요청 URI HTTP 버전

PUT

http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey')

HTTP/1.1

저장소 에뮬레이터의 테이블 서비스는 Windows?Azure?테이블 서비스와 몇 가지 면에서 서로 다릅니다. 자세한 내용은 저장소 에뮬레이터와 Windows Azure 저장소 서비스의 차이점를 참조하십시오.

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

 

요청 헤더 설명

Authorization

필수 사항입니다. 인증 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Windows Azure 저장소 서비스에 대한 인증를 참조하십시오.

Date or x-ms-date

필수 사항입니다. 요청의 UCT(협정 세계시)를 지정합니다. 자세한 내용은 Windows Azure 저장소 서비스에 대한 인증를 참조하십시오.

x-ms-version

필수이며, 2011-08-18 이상으로 설정되어야 합니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Windows Azure에서 Blob, 큐 및 테이블 서비스의 버전 관리를 참조하십시오.

Content-Type

필수 사항입니다. 페이로드의 콘텐츠 형식을 지정합니다. 가능한 값은 application/atom+xmlapplication/json입니다.

유효한 콘텐츠 형식에 대한 자세한 내용은 테이블 서비스 작업의 페이로드 형식을 참조하십시오.

Content-Length

필수 사항입니다. 요청 본문의 길이입니다.

x-ms-client-request-id

선택 사항입니다. 저장소 분석 로깅을 사용하도록 설정한 경우 분석 로그에 기록된 1KB 문자 제한의 클라이언트에서 생성한 불투명 값을 제공합니다. 클라이언트 쪽 작업과 서버가 받은 요청의 상관 관계를 지정하는 데 이 헤더를 사용하는 것이 좋습니다. 자세한 내용은 저장소 분석 로깅 정보Windows Azure 로깅: 로그를 사용하여 저장소 요청 추적을 참조하십시오.

Insert Or Replace Entity 작업은 삽입할 엔터티를 JSON 또는 Atom 피드일 수 있는 OData 엔터티 집합으로 보냅니다. 자세한 내용은 엔터티 삽입 및 업데이트를 참조하십시오.

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.

작업이 성공하면 상태 코드 204(콘텐츠 없음)이 반환됩니다.

상태 코드에 대한 자세한 내용은 상태 및 오류 코드테이블 서비스 오류 코드를 참조하십시오.

응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 따릅니다.

 

응답 헤더 설명

ETag

엔터티의 ETag입니다.

x-ms-request-id

이 헤더는 수행된 요청을 고유하게 식별하며 요청 문제를 해결하는 데 사용될 수 있습니다. 자세한 내용은 API 작업 문제 해결를 참조하십시오.

x-ms-version

요청을 실행하는 데 사용되는 테이블 서비스의 버전을 나타냅니다. 이 헤더는 19.09.09 버전 이상에 대해 수행된 요청에 대해 반환됩니다.

Date

응답이 시작된 시간을 나타내는 서비스에서 생성된 UTC 날짜/시간 값입니다.

없음.

이 작업은 계정 소유자 및 이 작업을 수행할 수 있는 권한이 있는 공유 액세스 서명을 갖는 모든 사용자가 수행할 수 있습니다.

Atom: 다음은 예제 Atom 요청 및 응답입니다.

PUT https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey',RowKey='myRowKey')

이 요청은 다음 헤더와 함께 전송되었습니다.

x-ms-version: 2013-08-15
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
Content-Type: application/atom+xml
x-ms-date: Tue, 12 Nov 2013 18:10:24 GMT
Authorization: SharedKeyLite myaccount:u0sWZKmjBD1B7LY/CwXWCnHdqK4B1P4z8hKy9SVW49o=
Content-Length: 1135
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx

이 요청은 다음 XML 본문과 함께 전송되었습니다.

<?xml version="1.0" encoding="utf-8"?>
<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>2013-11-12T18:09:37.168836Z</updated>
  <author>
    <name />
  </author>
<id>https://myaccount.table.core.windows.net/mytable(PartitionKey='mypartitionkey',RowKey='myrowkey1')</id>
  <content type="application/xml">
    <m:properties>
      <d:Address>Santa Clara</d:Address>
      <d:Age m:type="Edm.Int32">23</d:Age>
      <d:AmountDue m:type="Edm.Double">200.23</d:AmountDue>
      <d:CustomerCode m:type="Edm.Guid">c9da6455-213d-42c9-9a79-3e9149a57833</d:CustomerCode>
      <d:CustomerSince m:type="Edm.DateTime">2008-07-10T00:00:00Z</d:CustomerSince>
      <d:IsActive m:type="Edm.Boolean">false</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">2011-08-30T18:09:37.9557508Z</d:Timestamp>
    </m:properties>
  </content>
</entry>

요청이 전송된 후에는 다음과 같은 응답이 반환됩니다.

HTTP/1.1 204 No Content

Connection: Keep-Alive
x-ms-request-id: 2c085f8f-11a4-4e1d-bd49-82c6bd87649d
Content-Length: 0
Cache-Control: no-cache
Date: Tue, 12 Nov 2013 18:12:54 GMT
ETag: W/"0x5B168C7B6E589D2"
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0

JSON: 다음은 예제 JSON 요청 및 응답입니다.

PUT https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey',RowKey='myRowKey')
The request is sent with the following headers:
x-ms-version: 2013-08-15
Content-Type: application/json
x-ms-date: Tue, 30 Aug 2013 18:10:24 GMT
Authorization: SharedKeyLite myaccount:u0sWZKmjBD1B7LY/CwXWCnHdqK4B1P4z8hKy9SVW49o=
Content-Length: 1135
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx

이 요청은 다음 JSON 본문과 함께 전송되었습니다.

{
   "Address":"Santa Clara",
   "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":false,
   "NumberOfOrders@odata.type":"Edm.Int64",
   "NumberOfOrders":"255",
   "PartitionKey":"mypartitionkey",
   "RowKey":"myrowkey"
}

요청이 전송된 후에는 다음과 같은 응답이 반환됩니다.

HTTP/1.1 204 No Content

Connection: Keep-Alive
x-ms-request-id: 2c085f8f-11a4-4e1d-bd49-82c6bd87649d
Content-Length: 0
Cache-Control: no-cache
Date: Tue, 30 Aug 2013 18:12:54 GMT
ETag: W/"0x5B168C7B6E589D2"
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0

Insert Or Replace Entity 작업은 If-Match 헤더를 사용하지 않으며 2011-08-18 버전 이상을 사용해서 호출해야 합니다. 이러한 특성은 이 작업을 엔터티 업데이트(REST API) 작업과 구분합니다.

Insert Or Replace Entity 작업을 사용해서 엔터티를 바꾸면, 새 엔터티가 이전 속성을 정의하지 않을 경우 이전 엔터티의 모든 속성이 제거됩니다. Null 값이 있는 속성도 제거됩니다.

Insert or Replace Entity 작업을 호출할 때는 PartitionKeyRowKey 시스템 속성에 대한 값을 지정해야 합니다. 이러한 속성은 모두 기본 키를 형성하며 테이블 내에서 고유해야 합니다.

PartitionKeyRowKey 값은 모두 문자열 값이어야 하며, 각 키 값은 최대 64KB일 수 있습니다. 키 값에 대해 정수 값을 사용할 경우, 값이 정규화적으로 정렬되므로 정수를 고정 길이 문자열로 변환해야 합니다. 예를 들어 정렬이 올바르게 수행되도록 하려면 10000001로 변환해야 합니다.

속성의 형식을 명시적으로 지정하려면 ATOM 피드의 속성 정의 내에서 m:type 특성을 설정하여 적합한 OData 데이터 형식을 지정합니다. 속성 형식화에 대한 자세한 내용은 엔터티 삽입 및 업데이트를 참조하십시오.

인증을 수행하고 HTTP PUT 요청을 보낼 수 있는 응용 프로그램은 엔터티를 삽입 또는 교체할 수 있습니다.

일괄 처리 upsert 작업 수행에 대한 자세한 내용은 엔터티 그룹 트랜잭션 수행을 참조하십시오.

참고 항목

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