第4章 REST API を使用して Apicurio Registry コンテンツを管理する
クライアントアプリケーションは、Registry REST API 操作を使用して、Apicurio Registry のスキーマおよび API アーティファクトを管理できます (例: 実稼働環境用にデプロイされる CI/CD パイプラインなど)。Registry REST API は、レジストリーに保存されるアーティファクト、バージョン、メタデータ、およびルールの作成、読み取り、更新、および削除操作を提供します。詳細は、Apicurio Registry REST API ドキュメント を参照してください。
本章では、Apicurio Registry core REST API について説明し、これを使用してレジストリーに保存されているスキーマおよび API アーティファクトを管理する方法を説明します。
4.1. Registry REST API コマンドを使用したスキーマおよび API アーティファクトの管理 リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、レジストリー v2 コア REST API を使用して、レジストリーに Apache Avro スキーマアーティファクトを追加および取得するための単純な curl ベースの例を紹介します。
前提条件
- Apicurio Registry が環境にインストールされ、実行されている。
手順
/groups/{group}/artifacts操作を使用してアーティファクトをレジストリーに追加します。以下のcurlコマンドの例は、株価アプリケーションの単純なアーティファクトを追加します。$ curl -X POST -H "Content-type: application/json; artifactType=AVRO" \ -H "X-Registry-ArtifactId: share-price" \1 --data '{"type":"record","name":"price","namespace":"com.example", \ "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' \2 http://MY-REGISTRY-HOST/apis/registry/v2/groups/my-group/artifacts3 - 1
- この例では、
share-priceのアーティファクト ID を持つ Avro スキーマアーティファクトを追加します。一意のアーティファクト ID を指定しない場合、Apicurio Registry は UUID として自動的に生成します。 - 2
MY-REGISTRY-HOSTは、Apicurio Registry がデプロイされているホスト名です。例:my-cluster-service-registry-myproject.example.com- 3
- この例では、API パスで
my-groupのグループ ID を指定します。一意のグループ ID を指定しない場合は、API パスで../groups/defaultを指定する必要があります。
応答に、アーティファクトが追加されたことを確認するために、想定される JSON body が含まれていることを確認します。以下に例を示します。
{"createdBy":"","createdOn":"2021-04-16T09:07:51+0000","modifiedBy":"", "modifiedOn":"2021-04-16T09:07:51+0000","id":"share-price","version":"1",1 "type":"AVRO","globalId":2,"state":"ENABLED","groupId":"my-group","contentId":2}2 API パスでアーティファクト ID を使用して、レジストリーからアーティファクトコンテンツを取得します。この例では、指定された ID は
share-priceです。$ curl http://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"}]}