ETags

Important

エコノミー v2 が一般提供になりました。 サポートとフィードバックについては、PlayFab フォーラムにアクセスしてください。

このガイドでは、ETag を使用してアイテムの更新を管理する方法について説明します。

ETag とは

ETag は、アイテムとその更新プログラムを管理するためのコンカレンシー管理オプションです。

下書きアイテムを作成または更新すると、成功応答とともに ETag が返されます。

UpdateDraftItem 要求

{
  "Item": {
    "Id": "e08acd29-f28a-4cbb-b8d6-7df74c7f0e4a",
    "Type": "ugc",
    "AlternateIds": [],
    "Title": {
        "NEUTRAL": "ETag Test"
    }
  }
}

UpdateDraftItem 件の回答

{
    "code": 200,
    "status": "OK",
    "data": {
        "Item": {
            "Id": "e08acd29-f28a-4cbb-b8d6-7df74c7f0e4a",
            "Type": "ugc",
            "Title": {
                "NEUTRAL": "ETag Test"
            },
            ...
            "ETag": "\"7800e585-0000-0300-0000-623364bf0000\""
        }
    }
}

この ETag は、下書きアイテム (GetDraftItemGetEntityDraftItemsGetDraftItems など) を返す API から返されます。 この ETagUpdateDraftItem の更新が行われるたびに更新されます

ETag の使用

ETag は、UpdateDraftItemPublishDraftItem 呼び出しの省略可能なパラメーターとして渡すことができます。 渡された場合、下書きアイテムの ETag と渡されたパラメーターの間でチェックが行われます。 2 つの ETag が一致しない場合、要求は拒否されます。

Publish Item 要求

{
  "Id": "e08acd29-f28a-4cbb-b8d6-7df74c7f0e4a",
  "ETag": "\"7800e585-0000-0300-0000-623364bf0000\""
}

上記の要求では、アイテムを正常に発行されます。 他の ETag 値を指定すると、エラーがスローされ、要求が拒否されます。

ETag は、複数のユーザーまたはソースが同時にアイテムを変更することを想定している場合に便利です。 これにより、データが別の更新プログラムによって上書きされないようにすることができます。