4.2. Apicurio Registry REST API コマンドを使用したスキーマおよび API アーティファクトのバージョンの管理
Core Registry API v3 を使用してスキーマと API アーティファクトを追加するときにアーティファクトバージョン番号を指定しないと、Apicurio Registry によってバージョン番号が自動的に生成されます。新規アーティファクト作成時のデフォルトのバージョンは 1 です。
Apicurio Registry は、アーティファクトまたはアーティファクトバージョンを作成する際に、バージョン番号を指定できるカスタムバージョン管理もサポートしています。カスタムバージョン値を指定すると、アーティファクトまたはアーティファクトバージョンを作成する際に通常割り当てられるデフォルトバージョンがオーバーライドされます。続いて、バージョン番号を必要とする REST API 操作を実行する場合は、このバージョン値を使用できます。
このセクションでは、Core Registry API v3 を使用して、Apicurio Registry でカスタム Apache Avro スキーマバージョンを追加および取得する簡単な curl ベースの例を示します。カスタムバージョン番号を指定して、アーティファクトを作成したり、アーティファクトバージョンを追加したりできます。
前提条件
- Apicurio Registry が環境にインストールされ、実行されている。
手順
/groups/{groupId}/artifacts操作を使用して、レジストリーにアーティファクトバージョンを追加します。以下のcurlコマンドの例は、株価アプリケーションの単純なアーティファクトを追加します。$ curl -X POST MY-REGISTRY-URL/apis/registry/v3/groups/my-group/artifacts \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ --data-raw '{ "artifactId": "my-share-price", "artifactType": "AVRO", "firstVersion": { "version": "1.1.1", "content": { "content": "{\"type\":\"record\",\"name\":\" p\",\"namespace\":\"com.example\", \"fields\":[{\"name\":\"symbol\",\"type\":\"string\"},{\"name\":\"price\",\"type\":\"string\"}]}", "contentType": "application/json" } } }'-
この例では、アーティファクト ID が
my-share-priceでバージョンが1.1.1の Avro スキーマアーティファクトを追加します。バージョンを指定しない場合、Apicurio Registry はデフォルトバージョンの1を自動的に生成します。 -
MY-REGISTRY-URLは、Apicurio Registry がデプロイされているホスト名です。例:my-cluster-service-registry-myproject.example.com -
この例では、API パスで
my-groupのグループ ID を指定します。一意のグループ ID を指定しない場合は、API パスで../groups/defaultを指定する必要があります。
-
この例では、アーティファクト ID が
応答に、カスタムアーティファクトバージョンが追加されたことを確認するために、想定される JSON body が含まれていることを確認します。以下に例を示します。
{"artifact":{"owner":"","createdOn":"2024-09-26T17:06:21Z","modifiedBy":"","modifiedOn":"2024-09-26T17:06:21Z","artifactType":"AVRO","groupId":"my-group","artifactId":"my-share-price"},"version":{"version":"1.1.1","owner":"","createdOn":"2024-09-26T17:06:21Z","artifactType":"AVRO","globalId":4,"state":"ENABLED","groupId":"my-group","contentId":4,"artifactId":"my-share-price"}}-
アーティファクトの追加時に、
1.1.1のカスタムバージョンが指定されました。 -
これはレジストリーに追加された 4 つ目のアーティファクトであるため、グローバル ID とコンテンツ ID の値は
4になります。
-
アーティファクトの追加時に、
API パスでアーティファクト ID とバージョンを使用して、レジストリーからアーティファクトコンテンツを取得します。この例では、指定された ID は
my-share-priceであり、バージョンは1.1.1です。$ curl -H "Authorization: Bearer $ACCESS_TOKEN" \ MY-REGISTRY-URL/apis/registry/v3/groups/my-group/artifacts/my-share-price/versions/1.1.1/content {"type":"record","name":"price","namespace":"com.example", "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}