20.8.3.2.2. POST /{cacheName}/{cacheKey}
PUT と同じですが、キャッシュ/キーの値がすでに存在する場合のみ、Http CONFLICT ステータスが返されます(およびコンテンツは更新されません)。
Headers
- Key-Content-Type: URL に存在するキーのコンテンツタイプ。
- Content-Type: 送信される Value の MediaType を指定します。
- performAsync : OPTIONAL true/false(true の場合)は即座に返され、データを独自のクラスターに複製します。一括データの挿入/拡大クラスターに役立ちます。
- timeToLiveSeconds : OPTIONAL 番号(このエントリーが自動的に削除されるまでの秒数)。パラメーターが送信されていない場合、Red Hat Data Grid は設定のデフォルト値を想定します。負の値を渡すと、常に存在するエントリーが作成されます。
- maxIdleTimeSeconds : OPTIONAL 番号(このエントリーの最終使用後の秒数)。パラメーターが送信されていない場合、Red Hat Data Grid 設定のデフォルト値。負の値を渡すと、常に存在するエントリーが作成されます。
timeToLiveSeconds または maxIdleTimeSeconds のパラメーターとして 0 を渡す
-
timeToLiveSecondsおよびmaxIdleTimeSecondsの両方が 0 の場合、キャッシュは XML/プログラムで設定したデフォルトのライフスパン値およびmaxIdle値を使用します。 -
maxIdleTimeSecondsのみ が 0 の場合、これはパラメーターとして渡されるtimeToLiveSeconds値を使用します(存在しない場合は -1)、XML/プログラムで設定されるデフォルトのmaxIdleを使用します。 -
timeToLiveSecondsのみ が 0 の場合、これは XML/プログラムで設定されるデフォルトのライフスパンを使用し、maxIdleはパラメーターとして送信されるすべてのものに設定されます(存在しない場合は -1)。
JSON/Protostream 変換
キャッシュがインデックス化される場合、またはとくに application/x-protostream を保存するように設定されている場合、protostream に自動的に変換される JSON ドキュメントを送受信できます。変換を機能させるには、protobuf スキーマを登録する必要があります。
登録は、REST 経由で登録を行うには、getfacl protobuf_metadata キャッシュで POST/PUT を実行します。cURL の使用例:
curl -u user:password -X POST --data-binary @./schema.proto http://127.0.0.1:8080/rest/___protobuf_metadata/schema.proto
curl -u user:password -X POST --data-binary @./schema.proto http://127.0.0.1:8080/rest/___protobuf_metadata/schema.proto
JSON ドキュメントを作成する場合は、ドキュメントに対応する protobuf メッセージ の ID を識別するために、特別なフィールド _型 をドキュメントに存在する必要があります。
たとえば、以下のスキーマについて考えてみましょう。
message Person {
required string name = 1;
required int32 age = 2;
}
message Person {
required string name = 1;
required int32 age = 2;
}
準拠 JSON ドキュメントは以下のようになります。
{
"_type": "Person",
"name": "user1",
"age": 32
}
{
"_type": "Person",
"name": "user1",
"age": 32
}