4장. REST API를 사용하여 서비스 레지스트리 콘텐츠 관리
클라이언트 애플리케이션은 서비스 레지스트리 REST API 작업을 사용하여 서비스 레지스트리의 스키마 및 API 아티팩트를 관리할 수 있습니다(예: 프로덕션에 배포된 CI/CD 파이프라인). Core Registry API v2는 서비스 레지스트리에 저장된 아티팩트, 버전, 메타데이터 및 규칙에 대한 작업을 제공합니다. 자세한 내용은 Apicurio Registry REST API 설명서를 참조하십시오.
이 장에서는 코어 레지스트리 API v2를 사용하여 다음 작업을 수행하는 방법에 대한 예를 설명합니다.
사전 요구 사항
4.1. 서비스 레지스트리 REST API 명령을 사용하여 스키마 및 API 아티팩트 관리
이 섹션에서는 코어 레지스트리 API v2를 사용하여 서비스 레지스트리에서 간단한 스키마 아티팩트를 추가하고 검색하는 간단한 curl 기반 예제를 보여줍니다.
사전 요구 사항
- 사용자 환경에 서비스 레지스트리가 설치되어 실행 중입니다.
절차
/groups/{group}/artifacts
작업을 사용하여 서비스 레지스트리에 아티팩트를 추가합니다. 다음 예제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가 있는 Apache Avro 스키마 아티팩트를 추가합니다
. 고유한 아티팩트 ID를 지정하지 않으면 서비스 레지스트리가 UUID로 자동으로 생성합니다. -
MY-REGISTRY-URL
은 서비스 레지스트리가 배포된 호스트 이름입니다. 예:my-cluster-service-registry-myproject.example.com
. -
이 예제에서는 API 경로에서
my-group
의 그룹 ID를 지정합니다. 고유한 그룹 ID를 지정하지 않으면 API 경로에../groups/default
를 지정해야 합니다.
-
이 예제에서는
응답에 아티팩트가 추가되었는지 확인하기 위해 예상 JSON 본문이 포함되어 있는지 확인합니다. 예를 들면 다음과 같습니다.
{"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
이 자동으로 생성됩니다. -
이는 서비스 레지스트리에 두 번째 아티팩트가 추가되었으므로 글로벌 ID 및 콘텐츠 ID의 값은
2
입니다.
-
아티팩트를 추가할 때 버전이 지정되지 않았으므로 기본 버전
API 경로에서 아티팩트 ID를 사용하여 서비스 레지스트리에서 아티팩트 콘텐츠를 검색합니다. 이 예에서 지정된 ID는
공유 값을 갖습니다
.$ 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"}]}
추가 리소스