条件付き要求の使用
応答のキャッシュをサポートするため、REST API では、HTTP 1.1 の仕様で定義された標準に準拠する条件付き要求ヘッダーを使用できます。
厳しい入力規則では、要求に If-Match または If-None-Match ヘッダーを含め、照合するレコードのエンティティタグ (ETag) を参照します。緩い入力規則では、要求に If-Modified-Since または If-Unmodified-Since ヘッダー、およびチェックする日時を含めます。REST API の条件付きヘッダーは HTTP 1.1 の仕様に準拠しますが、次の例外があります。
- PATCH または POST 要求の If-Match、If-None-Match、または If-Unmodified-Since に無効なヘッダー値を含めた場合、400 Bad Request 状況コードが返されます。
- If-Range ヘッダーはサポートされていません。
- これらのヘッダーでは、DELETE 要求はサポートされていません。
- ETag
- HTTP 1.1 の仕様: www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19
- ETag ヘッダーは、SObject Rows リソースにアクセスするときに返される応答ヘッダーです。後続の要求の If-Match および If-None-Match 要求ヘッダーがコンテンツに変更があるかどうかを判断するために使用するコンテンツのハッシュです。
- サポートされているリソース: SObject Rows (取引先レコードのみ)
- 例: ETag: "U5iWijwWbQD18jeiXwsqxeGpZQk=-gzip"
- If-Match
- HTTP 1.1 の仕様: www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24
- If-Match ヘッダーは、ETag のリストを含む SObject Rows の要求ヘッダーです。要求しているレコードの ETag がヘッダーに指定した ETag と一致する場合は、要求が処理されます。いずれの ETag とも一致しない場合は、412 Precondition Failed 状況コードが返され、要求は処理されません。
- サポートされているリソース: SObject Rows (取引先レコードのみ)
- 例: If-Match: "Jbjuzw7dbhaEG3fd90kJbx6A0ow=-gzip", "U5iWijwWbQD18jeiXwsqxeGpZQk=-gzip"
- If-None-Match
- HTTP 1.1 の仕様: www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26
- If-None-Match ヘッダーは、If-Match の逆数である SObject Rows の要求ヘッダーです。要求しているレコードの ETag がヘッダーに指定した ETag と一致する場合は、要求が処理されません。GET または HEAD 要求では 304 Not Modified 状況コードが返され、PATCH 要求では 412 Precondition Failed 状況コードが返されます。
- サポートされているリソース: SObject Rows (取引先レコードのみ)
- 例: If-None-Match: "Jbjuzw7dbhaEG3fd90kJbx6A0ow=-gzip", "U5iWijwWbQD18jeiXwsqxeGpZQk=-gzip"
- If-Modified-Since
- HTTP 1.1 の仕様: www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25
- If-Modified-Since ヘッダーは、時間ベースの要求ヘッダーです。要求は、ヘッダーで指定した日時以降にデータが変更された場合にのみ処理されます。いずれの ETag とも一致しない場合は、304 Not Modified 状況コードが返され、要求は処理されません。
- サポートされているリソース: SObject Rows、SObject Describe、Describe Global、および Invocable Actions
- 例: If-Modified-Since: Tue, 10 Aug 2015 00:00:00 GMT
- If-Unmodified-Since
- HTTP 1.1 の仕様: www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28
- If-Unmodified-Since ヘッダーは、If-Modified-Since の逆数である要求ヘッダーです。要求を実行し、If-Unmodified-Since ヘッダーを含める場合は、指定した日付以降にデータが変更されていない場合にのみ要求が処理されます。いずれの ETag とも一致しない場合は、412 Precondition Failed 状況コードが返され、要求は処理されません。
- サポートされているリソース: SObject Rows、SObject Describe、Describe Global、および Invocable Actions
- 例: If-Unmodified-Since: Tue, 10 Aug 2015 00:00:00 GMT