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 설명서 를 참조하십시오.
  • 참조된 교환 스키마 아티팩트는 이미 서비스 레지스트리에 생성됩니다.

프로세스

  1. apicurio-registry-maven-plugin 을 사용하여 다음과 같이 교환 스키마에 중첩된 참조가 포함된 tradeKey 스키마를 등록하도록 Maven pom.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 아티팩트 참조를 지정합니다. 이러한 방식으로 여러 아티팩트 참조를 등록할 수 있습니다.
  2. 예를 들어 mvn package 명령을 사용하여 Maven 프로젝트를 빌드합니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.