20.8.3. REST API
HTTP PUT と POST メソッドは、キャッシュ名とキーに対応する URL を使用してデータをキャッシュに配置するために使用されます。要求の本文となるデータ(データは任意のものにすることができます)。他のヘッダーを使用してキャッシュ設定と動作を制御します。
20.8.3.1. データ形式 リンクのコピーリンクがクリップボードにコピーされました!
20.8.3.1.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
REST 経由で公開される各キャッシュは、MediaType で定義される設定可能なデータ形式でデータを格納します。設定の詳細は、を参照し て ください。
ストレージ設定の例は以下のようになります。
MediaType が設定されていない場合、Red Hat Data Grid は以下の例外を除き、「application/octet-stream」とみなします。
- キャッシュがインデックス化される場合、「application/x-protostream」を想定します。
- キャッシュが互換性モードで設定されている場合は、"application/x-java-object" を想定します。
20.8.3.1.2. サポート対象の形式 リンクのコピーリンクがクリップボードにコピーされました!
データはストレージ形式とは異なる形式で記述および読み取ることができます。Red Hat Data Grid は、必要に応じてこれらのフォーマット間で変換できます。
以下の「標準」形式は同じに変換できます。
- application/x-java-object
- application/octet-stream
- application/x-www-form-urlencoded
- text/plain
上記の形式を変換できます。
- application/xml
- application/json
- application/x-jboss-marshalling
- application/x-protostream
- application/x-java-serialized
最後に、以下の変換もサポートされています。
- application/x-protostream と application/jsonの間
すべての REST API コールは、書き込まれたコンテンツを記述するヘッダー、または読み取り時に必要なコンテンツの形式を提供できます。Red Hat Data Grid は、値に適用される標準の HTTP/1.1 ヘッダー「Content-Type」および「Accept」をサポートし、キーと同様の効果のある "Key-Content-Type" もサポートします。
20.8.3.1.3. Accept ヘッダー リンクのコピーリンクがクリップボードにコピーされました!
REST サーバーは RFC-2616 Accept ヘッダーに準拠しており、サポートされる変換に基づいて正しい MediaType をネゴシエートします。たとえば、データの読み取り時に以下のヘッダーを送信します。
Accept: text/plain;q=0.7, application/json;q=0.8, */*;q=0.6
Accept: text/plain;q=0.7, application/json;q=0.8, */*;q=0.6
これにより、Red Hat Data Grid は最初に JSON 形式でコンテンツを返します(優先度 0.8)。ストレージの形式を JSON に変換しない場合、次の形式が text/plain (2 番目に高い優先度 0.7)にフォールバックし、最後に */ * にフォールバックします。これは、キャッシュ設定に基づいて自動的に表示される形式を選択します。
20.8.3.1.4. Key-Content-Type ヘッダー リンクのコピーリンクがクリップボードにコピーされました!
ほとんどのREST APIコールでは、URLにKeyが含まれています。Red Hat Data Grid は、これらの呼び出しを処理する際に Key が java.lang.String であることを前提としていますが、異なる形式のキーに特定のヘッダー Key-Content-Type を使用できます。
例:
- byte[] KeyをBase64文字列で指定する
API呼び出し:
`PUT /my-cache/AQIDBDM=`
`PUT /my-cache/AQIDBDM=`
ヘッダー:
Key-Content-Type: application/octet-stream
- byte[] Keyを16進数の文字列で指定する。
API呼び出し:
GET /my-cache/0x01CA03042F
ヘッダー:
Key-Content-Type: application/octet-stream; encoding=hex
Key-Content-Type: application/octet-stream; encoding=hex
- ダブルキーの指定:
API呼び出し:
POST /my-cache/3.141456
ヘッダー:
Key-Content-Type: application/x-java-object;type=java.lang.Double
Key-Content-Type: application/x-java-object;type=java.lang.Double
application/x-java-object の type パラメーターは以下に制限されます。
- Primitive wrapper types
- java.lang.String
- bytes, making application/x-java-object;type=Bytes equivalent to application/octet-stream;encoding=hex