2.3. Protobuf スキーマの操作
Data Grid REST API を利用して、Protobuf スキーマ .proto
を作成・管理することができます。
2.3.1. Protobuf スキーマの作成
ペイロードに protobuf ファイルのコンテンツを含む POST
リクエストで、Data Grid クラスター全体に Protobuf スキーマを作成します。
POST /rest/v2/schemas/{schemaName}
スキーマがすでに存在する場合、Data Grid は HTTP409 (Conflict)
を返します。構文エラーのため、またはその依存関係の一部が欠落しているためにスキーマが有効でない場合、Data Grid はスキーマを格納し、応答本文にエラーを返します。
Data Grid は、スキーマ名とエラーで応答します。
{ "name" : "users.proto", "error" : { "message": "Schema users.proto has errors", "cause": "java.lang.IllegalStateException:Syntax error in error.proto at 3:8: unexpected label: messoge" } }
-
name
は Protobuf スキーマの名前です。 -
error
は、有効な Protobuf スキーマではnull
です。Data Grid がスキーマを正常に検証できない場合、エラーを返します。
操作が正常に完了すると、サービスは 201 (Created)
を返します。
2.3.2. Protobuf スキーマの読み取り
GET
リクエストで Data Grid から Protobuf スキーマを取得します。
GET /rest/v2/schemas/{schemaName}
2.3.3. Protobuf スキーマの更新
ペイロードに protobuf ファイルのコンテンツを含む PUT
リクエストで Protobuf スキーマを変更する。
既存の Protobuf スキーマ定義を変更する場合は、インデックススキーマを更新または再構築する必要があります。変更に既存のフィールドの変更が含まれる場合は、インデックスを再構築する必要があります。既存のスキーマを変更せずに新しいフィールドを追加する場合は、再構築の代わりにインデックススキーマを更新できます。
PUT /rest/v2/schemas/{schemaName}
構文エラーのため、またはその依存関係の一部が欠落しているためにスキーマが有効でない場合、Data Grid はスキーマを更新し、応答本文にエラーを返します。
{ "name" : "users.proto", "error" : { "message": "Schema users.proto has errors", "cause": "java.lang.IllegalStateException:Syntax error in error.proto at 3:8: unexpected label: messoge" } }
-
name
は Protobuf スキーマの名前です。 -
error
は、有効な Protobuf スキーマではnull
です。Data Grid がスキーマを正常に検証できない場合、エラーを返します。
2.3.4. Protobuf スキーマの削除
DELETE
リクエストで Data Grid クラスターから Protobuf スキーマを削除します。
DELETE /rest/v2/schemas/{schemaName}
操作が正常に完了すると、サービスは 204 (No Content)
を返します。
2.3.5. Protobuf スキーマのリスト表示
GET
リクエストで利用可能なすべての Protobuf スキーマをリストアップします。
GET /rest/v2/schemas/
Data Grid は、クラスターで使用可能なすべてのスキーマのリストで応答します。
[ { "name" : "users.proto", "error" : { "message": "Schema users.proto has errors", "cause": "java.lang.IllegalStateException:Syntax error in error.proto at 3:8: unexpected label: messoge" } }, { "name" : "people.proto", "error" : null }]
-
name
は Protobuf スキーマの名前です。 -
error
は、有効な Protobuf スキーマではnull
です。Data Grid がスキーマを正常に検証できない場合、エラーを返します。
2.3.6. Protobuf タイプの一覧表示
GET
要求で使用可能なすべての Protobuf タイプを一覧表示します。
GET /rest/v2/schemas?action=types
Data Grid は、クラスターで使用可能なすべてのタイプのリストで応答します。
["org.infinispan.Person", "org.infinispan.Phone"]