4.2. Registry REST API コマンドを使用したスキーマおよび API アーティファクトのバージョンの管理
v2 REST API を使用してスキーマおよび API アーティファクトを Service Registry に追加する際にアーティファクトバージョンを指定しない場合、Service Registry は自動的にアーティファクトバージョンを生成します。新規アーティファクト作成時のデフォルトのバージョンは 1
です。
Service Registry は、X-Registry-Version
HTTP リクエストヘッダーを文字列として使用してバージョンを指定できるカスタムバージョン管理もサポートしています。カスタムバージョン値を指定すると、アーティファクトの作成または更新時に通常割り当てられるデフォルトのバージョンが上書きされます。バージョンを必要とする REST API 操作を実行する場合は、このバージョン値を使用できます。
本セクションでは、レジストリー v2 コア REST API を使用して、レジストリーに カスタム Apache Avro スキーマアバージョンを追加および取得するための単純な curl ベースの例を紹介します。REST API を使用してアーティファクトを追加または更新したり、アーティファクトバージョンを追加したりするときにカスタムバージョンを指定できます。
前提条件
- Service Registry が環境にインストールされ、実行されている。
手順
/groups/{group}/artifacts
操作を使用して、レジストリーにアーティファクトバージョンを追加します。以下のcurl
コマンドの例は、株価アプリケーションの単純なアーティファクトを追加します。$ curl -X POST -H "Content-type: application/json; artifactType=AVRO" \ -H "X-Registry-ArtifactId: my-share-price" -H "X-Registry-Version: 1.1.1" \ 1 --data '{"type":"record","name":" p","namespace":"com.example", \ "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' \ 2 http://MY-REGISTRY-HOST/apis/registry/v2/groups/my-group/artifacts 3
- 1
- この例では、アーティファクト ID が
my-share-price
でバージョンが1.1.1
の Avro スキーマアーティファクトを追加します。バージョンを指定しないと、Service Registry によってデフォルトのバージョン1
が自動的に生成されます。 - 2
MY-REGISTRY-HOST
は、Service Registry がデプロイされているホスト名です。例:my-cluster-service-registry-myproject.example.com
。- 3
- この例では、API パスで
my-group
のグループ ID を指定します。一意のグループ ID を指定しない場合は、API パスで../groups/default
を指定する必要があります。
応答に、カスタムアーティファクトバージョンが追加されたことを確認するために、想定される JSON ボディーが含まれていることを確認します。以下に例を示します。
{"createdBy":"","createdOn":"2021-04-16T10:51:43+0000","modifiedBy":"", "modifiedOn":"2021-04-16T10:51:43+0000","id":"my-share-price","version":"1.1.1", 1 "type":"AVRO","globalId":3,"state":"ENABLED","groupId":"my-group","contentId":3} 2
API パスでアーティファクト ID とバージョンを使用して、レジストリーからアーティファクトコンテンツを取得します。この例では、指定された ID は
my-share-price
であり、バージョンは1.1.1
です。$ curl http://MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts/my-share-price/versions/1.1.1 \ {"type":"record","name":"price","namespace":"com.example", \ "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}
関連情報
- REST API のサンプル要求の詳細は、Apicurio Registry REST API のドキュメント を参照してください。