10.2. Registry REST API コマンドを使用したアーティファクトの管理
クライアントアプリケーションは、Registry REST API コマンドを使用して、Service Registry のアーティファクトを管理できます(たとえば、実稼働環境にデプロイされた CI/CD パイプラインなど)。Registry REST API は、レジストリーに保存されるアーティファクト、バージョン、メタデータ、およびルールの作成、読み取り、更新、および削除操作を提供します。詳細は、Apicurio Registry REST API のドキュメント を参照してください。
本セクションでは、レジストリー REST API を使用してレジストリーに Apache Avro スキーマアーティファクトを追加および取得する簡単な curl ベースの例を紹介します。
REST API を使用して Service Registry にアーティファクトを追加する場合、一意のアーティファクト ID を指定しない場合、Service Registry は UUID として自動的に生成します。
前提条件
- 1章Service Registry の概要 を参照してください。
- Service Registry が環境にインストールされ、実行されている。
手順
/artifacts操作を使用して、レジストリーにアーティファクトを追加します。以下のcurlコマンドの例は、株価アプリケーションの単純なアーティファクトを追加します。curl -X POST -H "Content-type: application/json; artifactType=AVRO" -H "X-Registry-ArtifactId: share-price" --data '{"type":"record","name":"price","namespace":"com.example","fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' http://MY-REGISTRY-HOST/api/artifacts$ curl -X POST -H "Content-type: application/json; artifactType=AVRO" -H "X-Registry-ArtifactId: share-price" --data '{"type":"record","name":"price","namespace":"com.example","fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' http://MY-REGISTRY-HOST/api/artifactsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例では、
共有価格のアーティファクト ID を持つ Avro スキーマアーティファクトを追加する方法を示します。MY-REGISTRY-HOSTは、Service Registry がデプロイされているホスト名です。例:my-cluster-service-registry-myproject.example.com。応答に、アーティファクトが追加されたことを確認するために、想定される JSON ボディーが含まれていることを確認します。以下に例を示します。
{"createdOn":1578310374517,"modifiedOn":1578310374517,"id":"share-price","version":1,"type":"AVRO","globalId":8}{"createdOn":1578310374517,"modifiedOn":1578310374517,"id":"share-price","version":1,"type":"AVRO","globalId":8}Copy to Clipboard Copied! Toggle word wrap Toggle overflow アーティファクト ID を使用してレジストリーからアーティファクトを取得します。たとえば、この場合は、指定の ID が
share-priceになります。curl http://MY-REGISTRY-URL/api/artifacts/share-price
$ curl http://MY-REGISTRY-URL/api/artifacts/share-price '{"type":"record","name":"price","namespace":"com.example","fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- REST API のサンプル要求の詳細は、Apicurio Registry REST API のドキュメント を参照してください。