4.3. Service Registry REST API コマンドを使用したスキーマおよび API アーティファクト参照の管理
Apache Avro、Protobuf、JSON スキーマなどの Service Registry アーティファクトタイプには、あるアーティファクトファイルから別のアーティファクトファイルへの アーティファクト参照 を含めることができます。再利用可能なスキーマと API アーティファクトを定義し、それらを複数の場所から参照することで、効率を高めることができます。
このセクションでは、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/referencesCopy 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