第4章 REST API を使用した Service Registry コンテンツの管理
クライアントアプリケーションは、Service Registry REST API オペレーションを使用して、Service Registry のスキーマと API アーティファクトを管理できます。たとえば、実稼働環境にデプロイされた CI/CD パイプラインで使用できます。Core Registry API v2 は、Service Registry に保存されているアーティファクト、バージョン、メタデータ、およびルールの操作を提供します。詳細は、Apicurio Registry REST API ドキュメント を参照してください。
この章では、Core Registry API v2 を使用して、次のタスクを実行する方法の例を示します。
4.1. Service Registry REST API コマンドを使用したスキーマおよび API アーティファクトの管理
このセクションでは、Core Registry API v2 を使用して、Service Registry で単純なスキーマアーティファクトを追加および取得する簡単な curl ベースの例を示します。
前提条件
- Service Registry が環境にインストールされ、実行している。
手順
/groups/{group}/artifacts
オペレーションを使用して、アーティファクトを Service Registry に追加します。次のcurl
コマンドの例では、株価アプリケーションの単純なスキーマアーティファクトを追加します。$ curl -X POST -H "Content-Type: application/json; artifactType=AVRO" \ -H "X-Registry-ArtifactId: share-price" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ --data '{"type":"record","name":"price","namespace":"com.example", \ "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' \ MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts
-
この例では、アーティファクト ID が
share-price
の Apache 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
を指定する必要があります。
-
この例では、アーティファクト ID が
応答に、アーティファクトが追加されたことを確認するために、想定される JSON body が含まれていることを確認します。以下に例を示します。
{"createdBy":"","createdOn":"2021-04-16T09:07:51+0000","modifiedBy":"", "modifiedOn":"2021-04-16T09:07:51+0000","id":"share-price","version":"1", "type":"AVRO","globalId":2,"state":"ENABLED","groupId":"my-group","contentId":2}
-
アーティファクトの追加時にバージョンが指定されなかったため、デフォルトのバージョン
1
が自動的に作成されます。 -
これは Service Registry に追加された 2 番目のアーティファクトであるため、グローバル ID とコンテンツ ID の値は
2
です。
-
アーティファクトの追加時にバージョンが指定されなかったため、デフォルトのバージョン
API パスのアーティファクト ID を使用して、Service Registry からアーティファクトコンテンツを取得します。この例では、指定された ID は
share-price
です。$ curl -H "Authorization: Bearer $ACCESS_TOKEN" \ MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts/share-price {"type":"record","name":"price","namespace":"com.example", "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}
関連情報
- 詳細は、Apicurio Registry REST API ドキュメント を参照してください。