5.4. Service Registry Maven 플러그인을 사용하여 수동으로 아티팩트 참조 추가
일부 Service Registry 아티팩트 유형에는 한 아티팩트 파일에서 다른 아티팩트 파일로의 아티팩트 참조 가 포함될 수 있습니다. 재사용 가능한 스키마 또는 API 아티팩트를 정의한 다음 아티팩트 참조의 여러 위치에서 참조할 수 있습니다.
다음 아티팩트 유형은 아티팩트 참조를 지원합니다.
- Apache Avro
- Google Protobuf
- JSON 스키마
- OpenAPI
- AsyncAPI
이 섹션에서는 Service Registry Maven 플러그인을 사용하여 서비스 레지스트리에 저장된 간단한 Avro 스키마 아티팩트에 대한 아티팩트 참조를 수동으로 등록하는 간단한 예를 보여줍니다. 이 예에서는 다음 Exchange 스키마 아티팩트가 서비스 레지스트리에 이미 생성되어 있다고 가정합니다.
교환 스키마
{
"namespace": "com.kubetrade.schema.common",
"type": "enum",
"name": "Exchange",
"symbols" : ["GEMINI"]
}
이 예제에서는 중첩된 교환 스키마 아티팩트에 대한 참조를 포함하는 tradeKey 스키마 아티팩트를 생성합니다.
교환 스키마에 대한 중첩된 참조가 있는 tradeKey 스키마
{
"namespace": "com.kubetrade.schema.trade",
"type": "record",
"name": "TradeKey",
"fields": [
{
"name": "exchange",
"type": "com.kubetrade.schema.common.Exchange"
},
{
"name": "key",
"type": "string"
}
]
}
사전 요구 사항
- 클라이언트 애플리케이션에 대한 Maven 프로젝트를 생성했습니다. 자세한 내용은 Apache Maven 설명서 를 참조하십시오.
-
참조된
교환스키마 아티팩트는 이미 서비스 레지스트리에 생성됩니다.
프로세스
apicurio-registry-maven-plugin을 사용하여 다음과 같이교환스키마에 중첩된 참조가 포함된tradeKey스키마를 등록하도록 Mavenpom.xml파일을 업데이트합니다.<plugin> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-maven-plugin</artifactId> <version>${apicurio-registry.version}</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>register</goal>1 </goals> <configuration> <registryUrl>MY-REGISTRY-URL/apis/registry/v2</registryUrl>2 <authServerUrl>MY-AUTH-SERVER</authServerUrl> <clientId>MY-CLIENT-ID</clientId> <clientSecret>MY-CLIENT-SECRET</clientSecret>3 <clientScope>MY-CLIENT-SCOPE</clientScope> <artifacts> <artifact> <groupId>test-group</groupId>4 <artifactId>TradeKey</artifactId> <version>2.0</version> <type>AVRO</type> <file> ${project.basedir}/src/main/resources/schemas/TradeKey.avsc </file> <ifExists>RETURN_OR_UPDATE</ifExists> <canonicalize>true</canonicalize> <references> <reference>5 <name>com.kubetrade.schema.common.Exchange</name> <groupId>test-group</groupId> <artifactId>Exchange</artifactId> <version>2.0</version> <type>AVRO</type> <file> ${project.basedir}/src/main/resources/schemas/Exchange.avsc </file> <ifExists>RETURN_OR_UPDATE</ifExists> <canonicalize>true</canonicalize> </reference> </references> </artifact> </artifacts> </configuration> </execution> </executions> </plugin>- 1
- 서비스 레지스트리에 스키마 아티팩트를 업로드하려면
register를 실행 목표로 지정합니다. - 2
../apis/registry/v2끝점을 사용하여 서비스 레지스트리 URL을 지정합니다.- 3
- 인증이 필요한 경우 인증 서버 및 클라이언트 자격 증명을 지정할 수 있습니다.
- 4
- Service Registry 아티팩트 그룹 ID를 지정합니다. 고유한 그룹 ID를 사용하지 않으려면
기본그룹을 지정할 수 있습니다. - 5
- 그룹 ID, 아티팩트 ID, 버전, 유형 및 위치를 사용하여 Service Registry 아티팩트 참조를 지정합니다. 이러한 방식으로 여러 아티팩트 참조를 등록할 수 있습니다.
-
예를 들어
mvn package명령을 사용하여 Maven 프로젝트를 빌드합니다.