4.3. Service Registry REST API コマンドを使用したスキーマおよび API アーティファクト参照の管理
一部の Service Registry アーティファクトタイプには、別のアーティファクトファイルへの アーティファクト参照 を含めることができます。再利用可能なスキーマまたは API アーティファクトを定義し、アーティファクト参照の複数の場所からそれらを参照することで、効率を高めることができます。
次のアーティファクトタイプはアーティファクト参照をサポートしています。
- Apache Avro
- Google Protobuf
- JSON スキーマ
- OpenAPI
- AsyncAPI
このセクションでは、Core Registry API v2 を使用して、Service Registry の単純な Avro スキーマアーティファクトへのアーティファクト参照を追加および取得する簡単な curl ベースの例を示します。
この例では、最初に ItemId
という名前のスキーマアーティファクトを作成します。
ItemId スキーマ
次に、この例では、ネストされた ItemId
アーティファクトへの参照を含む、Item
という名前のスキーマアーティファクトを作成します。
ネストされた ItemId スキーマを持つアイテムスキーマ
前提条件
- Service Registry が環境にインストールされ、実行している。
手順
/groups/{group}/artifacts
オペレーションを使用して、ネストされたアーティファクト参照を作成するItemId
スキーマアーティファクトを追加します。curl -X POST MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts \ -H "Content-Type: application/json; artifactType=AVRO" \ -H "X-Registry-ArtifactId: ItemId" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ --data '{"namespace": "com.example.common", "type": "record", "name": "ItemId", "fields":[{"name":"id", "type":"int"}]}'
$ curl -X POST MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts \ -H "Content-Type: application/json; artifactType=AVRO" \ -H "X-Registry-ArtifactId: ItemId" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ --data '{"namespace": "com.example.common", "type": "record", "name": "ItemId", "fields":[{"name":"id", "type":"int"}]}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
この例では、
ItemId
のアーティファクト ID を持つ Avro スキーマアーティファクトを追加します。一意のアーティファクト ID を指定しない場合、Service Registry は UUID として自動的に生成します。 -
MY-REGISTRY-URL
は、Service Registry がデプロイされているホスト名です。例:my-cluster-service-registry-myproject.example.com
-
この例では、API パスで
my-group
のグループ ID を指定します。一意のグループ ID を指定しない場合は、API パスで../groups/default
を指定する必要があります。
-
この例では、
応答に、アーティファクトが追加されたことを確認するために、想定される JSON body が含まれていることを確認します。以下に例を示します。
{"name":"ItemId","createdBy":"","createdOn":"2022-04-14T10:50:09+0000","modifiedBy":"","modifiedOn":"2022-04-14T10:50:09+0000","id":"ItemId","version":"1","type":"AVRO","globalId":1,"state":"ENABLED","groupId":"my-group","contentId":1,"references":[]}
{"name":"ItemId","createdBy":"","createdOn":"2022-04-14T10:50:09+0000","modifiedBy":"","modifiedOn":"2022-04-14T10:50:09+0000","id":"ItemId","version":"1","type":"AVRO","globalId":1,"state":"ENABLED","groupId":"my-group","contentId":1,"references":[]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /groups/{group}/artifacts
操作を使用して、ItemId
スキーマへのアーティファクト参照を含むアイテム
スキーマアーティファクトを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
アーティファクト参照の場合には、
application/json
コンテンツタイプを拡張するapplication/create.extended+json
のカスタムコンテンツタイプを指定する必要があります。
-
アーティファクト参照の場合には、
アーティファクトが参照を使用して作成されたことを確認するために、予期される JSON body が応答に含まれていることを確認します。以下に例を示します。
{"name":"Item","createdBy":"","createdOn":"2022-04-14T11:52:15+0000","modifiedBy":"","modifiedOn":"2022-04-14T11:52:15+0000","id":"Item","version":"1","type":"AVRO","globalId":2,"state":"ENABLED","groupId":"my-group","contentId":2, "references":[{"artifactId":"ItemId","groupId":"my-group","name":"ItemId","version":"1"}] }
{"name":"Item","createdBy":"","createdOn":"2022-04-14T11:52:15+0000","modifiedBy":"","modifiedOn":"2022-04-14T11:52:15+0000","id":"Item","version":"1","type":"AVRO","globalId":2,"state":"ENABLED","groupId":"my-group","contentId":2, "references":[{"artifactId":"ItemId","groupId":"my-group","name":"ItemId","version":"1"}] }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 参照を含むアーティファクトのグローバル ID を指定して、Service Registry からアーティファクト参照を取得します。この例では、指定されたグローバル ID は
2
です。curl -H "Authorization: Bearer $ACCESS_TOKEN" MY-REGISTRY-URL/apis/registry/v2/ids/globalIds/2/references
$ curl -H "Authorization: Bearer $ACCESS_TOKEN" MY-REGISTRY-URL/apis/registry/v2/ids/globalIds/2/references
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 応答に、このアーティファクト参照に必要とされる JSON 本文が含まれていることを確認してください。以下に例を示します。
[{"groupId":"my-group","artifactId":"ItemId","version":"1","name":"com.example.common.ItemId"}]
[{"groupId":"my-group","artifactId":"ItemId","version":"1","name":"com.example.common.ItemId"}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow