4.3. Service Registry REST API 명령을 사용하여 스키마 및 API 아티팩트 참조 관리
Apache Avro, Protobuf 및 JSON 스키마와 같은 서비스 레지스트리 아티팩트 유형에는 하나의 아티팩트 파일에서 다른 아티팩트로의 아티팩트 참조가 포함될 수 있습니다. 재사용 가능한 스키마 및 API 아티팩트를 정의한 다음 여러 위치에서 해당 스키마를 참조하여 유효성을 높일 수 있습니다.
이 섹션에서는 코어 레지스트리 API v2를 사용하여 서비스 레지스트리의 간단한 Avro 스키마 아티팩트에 대한 아티팩트 참조를 추가하고 검색하는 간단한 curl 기반 예제를 보여줍니다.
이 예제에서는 먼저 Citadel Id라는 스키마 아티팩트를
생성합니다.
pvId 스키마
그런 다음, 이 예제에서는 중첩된 10.0.0.1 Id
아티팩트에 대한 참조를 포함하는 Citadel이라는 스키마 아티팩트를 생성합니다.
중첩 itemId 스키마가 있는 항목 스키마
사전 요구 사항
- 사용자 환경에 서비스 레지스트리가 설치되어 실행 중입니다.
절차
/groups/{group}/artifacts
작업을 사용하여 중첩된 아티팩트 참조를 생성할 itemId
스키마 아티팩트를 추가합니다.curl -X POST MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts \ -H "Content-Type: application/json; artifactType=AVRO" \ -H "X-Registry-ArtifactId: ItemId" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ --data '{"namespace": "com.example.common", "type": "record", "name": "ItemId", "fields":[{"name":"id", "type":"int"}]}'
$ curl -X POST MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts \ -H "Content-Type: application/json; artifactType=AVRO" \ -H "X-Registry-ArtifactId: ItemId" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ --data '{"namespace": "com.example.common", "type": "record", "name": "ItemId", "fields":[{"name":"id", "type":"int"}]}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
이 예제에서는 items
Id
의 아티팩트 ID를 사용하여 Avro 스키마 아티팩트를 추가합니다. 고유한 아티팩트 ID를 지정하지 않으면 서비스 레지스트리가 UUID로 자동으로 생성합니다. -
MY-REGISTRY-URL
은 서비스 레지스트리가 배포된 호스트 이름입니다. 예:my-cluster-service-registry-myproject.example.com
. -
이 예제에서는 API 경로에서
my-group
의 그룹 ID를 지정합니다. 고유한 그룹 ID를 지정하지 않으면 API 경로에../groups/default
를 지정해야 합니다.
-
이 예제에서는 items
응답에 아티팩트가 추가되었는지 확인하기 위해 예상 JSON 본문이 포함되어 있는지 확인합니다. 예를 들면 다음과 같습니다.
{"name":"ItemId","createdBy":"","createdOn":"2022-04-14T10:50:09+0000","modifiedBy":"","modifiedOn":"2022-04-14T10:50:09+0000","id":"ItemId","version":"1","type":"AVRO","globalId":1,"state":"ENABLED","groupId":"my-group","contentId":1,"references":[]}
{"name":"ItemId","createdBy":"","createdOn":"2022-04-14T10:50:09+0000","modifiedBy":"","modifiedOn":"2022-04-14T10:50:09+0000","id":"ItemId","version":"1","type":"AVRO","globalId":1,"state":"ENABLED","groupId":"my-group","contentId":1,"references":[]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /groups/{group}/artifacts
작업을 사용하여 itemId
스키마에 아티팩트 참조를 포함하는 item 스키마 아티팩트를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
아티팩트 참조의 경우
application/json
콘텐츠 유형을 확장하는application/create.extended+json
의 사용자 정의 콘텐츠 유형을 지정해야 합니다.
-
아티팩트 참조의 경우
응답에 아티팩트가 참조로 생성되었는지 확인하기 위해 예상 JSON 본문이 포함되어 있는지 확인합니다. 예를 들면 다음과 같습니다.
{"name":"Item","createdBy":"","createdOn":"2022-04-14T11:52:15+0000","modifiedBy":"","modifiedOn":"2022-04-14T11:52:15+0000","id":"Item","version":"1","type":"AVRO","globalId":2,"state":"ENABLED","groupId":"my-group","contentId":2, "references":[{"artifactId":"ItemId","groupId":"my-group","name":"ItemId","version":"1"}] }
{"name":"Item","createdBy":"","createdOn":"2022-04-14T11:52:15+0000","modifiedBy":"","modifiedOn":"2022-04-14T11:52:15+0000","id":"Item","version":"1","type":"AVRO","globalId":2,"state":"ENABLED","groupId":"my-group","contentId":2, "references":[{"artifactId":"ItemId","groupId":"my-group","name":"ItemId","version":"1"}] }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참조를 포함하는 아티팩트의 글로벌 ID를 지정하여 서비스 레지스트리에서 아티팩트 참조를 검색합니다. 이 예에서 지정된 글로벌 ID는
2
입니다.curl -H "Authorization: Bearer $ACCESS_TOKEN" MY-REGISTRY-URL/apis/registry/v2/ids/globalIds/2/references
$ curl -H "Authorization: Bearer $ACCESS_TOKEN" MY-REGISTRY-URL/apis/registry/v2/ids/globalIds/2/references
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 응답에 이 아티팩트 참조에 필요한 JSON 본문이 포함되어 있는지 확인합니다. 예를 들면 다음과 같습니다.
[{"groupId":"my-group","artifactId":"ItemId","version":"1","name":"com.example.common.ItemId"}]
[{"groupId":"my-group","artifactId":"ItemId","version":"1","name":"com.example.common.ItemId"}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow