API 제품 관리

명령어와 apic productsapic apis 를 사용하여 IBM® API Connect 카탈로그에 게시된 제품 및 API를 관리하세요. --scope space 옵션을 사용하여 카탈로그 내 페이스에 게시된 제품 및 API를 관리할 수 있습니다.

제품 관리 명령 요약

다음 테이블은 API 제품을 관리하기 위해 사용 가능한 명령을 요약합니다. 사용법 예제가 다음에 표시됩니다.
표 1. 명령어 예시 및 설명
명령 예 설명
apic config:set catalog=https://platform-api.myserver.com/api/catalogs/myorg/sandbox 기본 카탈로그를 설정합니다.
apic login --username some-user --password some-password --server platform-api.myserver.com --realm provider/my-identity-provider 관리 서버에 로그인합니다.

CLI에서 관리 서버에 로그인하는 방법에 대한 전체 세부사항은 관리 서버에 로그인을 참조하십시오.

apic create:api --title Routes --product "ClimbOn" 제품 및 API를 작성합니다.
apic products:publish climbon.yaml 제품을 기본 카탈로그에 공개합니다. --stage 인수를 추가하여 제품을 스테이징합니다.
apic products:list-all --scope catalog 기본 카탈로그의 제품을 나열합니다.
apic products:get climbon:1.0.0 --output - 제품의 특성을 표시합니다. 파일을 다운로드하려면 출력 인수를 생략하십시오.
apic apis:list-all --scope catalog 카탈로그의 API를 나열합니다.
apic apis:get routes:1.0.0 --output - API 특성을 가져옵니다. 파일을 다운로드하려면 출력 인수를 생략하십시오.
apic products:replace climbon:1.0.0 mapfile.txt 명령에 명시된 제품을 맵파일에서 지정된 스테이징 또는 게시된 제품으로 교체하십시오. 교체된 제품은 단종되었습니다.
apic products:supersede climbon:1.0.0 mapfile.txt 명령에 지정된 제품을 맵파일에 지정된 스테이징 또는 게시된 제품으로 대체합니다. 이전 버전의 제품은 더 이상 지원되지 않습니다.
apic products:delete climbon:1.0.0 카탈로그에서 제품을 삭제합니다. 제품이 폐기되거나 더 이상 사용되지 않아야 합니다.

전체 라이프사이클을 통한 productsapis 명령 사용

이 예는 런타임 시 제품과 API의 새 버전이 원본 버전을 대체하는 복합적 라이프사이클을 표시합니다.

참고: API를 정의하는 OpenAPI 파일이 $ref 필드를 사용하여 별도의 파일에 정의된 OpenAPI 코드의 단편을 참조하는 경우 API를 포함하는 제품이 apic publish 명령으로 스테이징되거나 공개되기 전에 $ref 필드가 대상 파일의 컨텐츠로 대체됩니다. 자세한 정보는 $ref를 사용하여 OpenAPI 파일에서 코드 단편 재사용을 참조하십시오.
기본 카탈로그를 설정하고 mgmnthost.comAPI Connect 클라우드에 로그인하세요
apic config:set catalog=https://platform-api.myserver.com/api/catalogs/climbon/sandbox
apic login --username some-user --password some-password --server platform-api.myserver.com --realm my-identity-provider

CLI에서 관리 서버에 로그인하는 방법에 대한 전체 세부사항은 관리 서버에 로그인을 참조하십시오.

초기 버전 작성 및 공개
apic create:api --title Routes --version 1.0.0 --filename routes100.yaml
apic create:product --title "Climb On" --version 1.0.0 --apis routes100.yaml --filename climbon100.yaml
apic products:publish climbon100.yaml
API에서 버그를 수정하도록 새 버전을 작성하고 카탈로그에 스테이징
apic create:api --title Routes --version 1.0.1 --filename routes101.yaml
apic create:product --title "Climb On" --version 1.0.1 --apis routes101.yaml --filename climbon101.yaml
apic products:publish --stage climbon101.yaml
카탈로그 조사
apic products:list-all --scope catalog
이 명령어는 카탈로그에 있는 모든 제품을 나열합니다. climbon:1.0.1 제품의 ID를 복사하십시오. ID는 다음 예제와 유사합니다.

https:/server/api/catalogs/3eca6046-3c27-4ad/ab8772bf-0f65-45/products/8f854623-bda1-4f9
맵핑 파일 작성

예를 들어, 특정 제품을 교체할 경우 매핑 파일은 교체할 제품을 지정하고, 원본 제품의 플랜을 대상 제품으로 매핑합니다. 예를 들어, climbon:1.0.0climbon:1.0.1로 대체하면 product_url 특성은 climbon:1.0.0의 URL을 지정합니다.

이 파일은 다음과 같은 양식을 사용합니다.

product_url: https:/server/api/catalogs/{id}/products/{id}
plans:
- source: {source_plan_name_1}
  target: {target_plan_name_1}
- source: {source_plan_name_2}
  target: {target_plan_name_2}
            .
            .
            .
참고:
  • 소스 및 대상 플랜 이름이 동일하거나 다를 수 있습니다.
  • 대체 중인 제품의 모든 플랜은 대체 제품의 플랜에 맵핑되어야 합니다.
버전 1.0.0을 1.0.1로 "즉시 대체"
apic products:replace climbon:1.0.1 PRODUCT_PLAN_MAPPING_FILE
이러한 방식으로 교체된 후, 지정된 제품은 단종됩니다. 더 이상 활성 상태가 아닙니다.
참고:

명령에 명시된 제품이 교체 제품입니다. 예를 들어, 를 로 climbon:1.0.0 대체하는 climbon:1.0.1 경우, 명령어에 지정된 Product는 입니다 climbon:1.0.1.

버전 1.0.0을 1.0.1로 대체
기존 제품을 새 제품(보통 업데이트된 버전)으로 즉시 대체하지 않고, 기존 제품을 새 제품으로 대체할 수 있습니다. 제품을 대체할 때 해당 제품에 대한 모든 외부 애플리케이션 등록이 새 제품으로 자동으로 이동됩니다. 제품을 대체할 때, 등록은 새 제품으로 자동으로 이동되지 않으며 외부 애플리케이션이 대체 제품으로 등록하도록 일부 조치를 수행해야 합니다.
제품을 대체하는 명령은 제품을 대체할 명령과 동일한 맵핑 파일을 사용합니다. 명령어에 대체할 제품의 이름이 명시되어 있습니다.
apic products:supersede climbon:1.0.1 PRODUCT_PLAN_MAPPING_FILE
제품이 대체되면 해당 제품은 ‘사용 중단 예정’으로 표시됩니다. 이는 해당 제품에 대한 신규 구독이 더 이상 허용되지 않음을 의미하지만, 제품은 여전히 활성화되어 있으며 기존 구독은 계속 유효합니다.
참고: 명령어에 명시된 제품은 이전 버전을 대체하는 제품입니다. 예를 들어, 를 로 climbon:1.0.0 대체하는 climbon:1.0.1 경우, 명령어에 지정된 Product는 입니다 climbon:1.0.1. 매핑 파일에는 대체할 제품의 제품 식별자( URL )가 명시되어 있습니다.
마이그레이션 대상 설정
기존 제품을 위한 마이그레이션 목표를 설정할 수 있습니다. 이는 마이그레이션에 도움이 됩니다.
마이그레이션 대상을 설정하려면 다음과 같은 명령을 사용하십시오.
apic products:set-migration-target climbon:1.0.0 PRODUCT_PLAN_MAPPING_FILE
참고: 명령어에 지정된 제품은 구독을 마이그레이션하려는 제품입니다. 맵핑 파일은 등록을 위한 대상 제품을 지정합니다.
마이그레이션 대상이 설정되면, 외부 애플리케이션 개발자는 Consumer Catalog 를 통해 애플리케이션 구독을 손쉽게 마이그레이션할 수 있습니다. 다음 명령어를 사용하여 구독 마이그레이션을 실행할 수도 있습니다.
apic products:execute-migration-target climbon:1.0.0
제품 삭제
교체되거나 대체된 제품이 더 이상 필요하지 않은 경우 삭제될 수 있습니다.
apic products:delete climbon:1.0.0

추가 제품 및 API 운영

라이프사이클 관리 기능 외에도, 다음 하위 clone 명령어를 사용하여 카탈로그나 스페이스에 있는 제품 및 API를 다운로드할 수 있습니다:
표 2. 명령어 및 설명
명령 설명
apic products:clone 카탈로그 또는 공간에서 모든 제품과 해당 API를 다운로드합니다.
apic apis:clone 카탈로그 또는 공간에서 모든 API를 다운로드합니다.
카탈로그에서 모든 제품과 해당 API를 삭제할 수도 있으며, 이는 특히 개발용 카탈로그에서 유용합니다. 작업을 확인하려면 --confirm 매개변수의 값으로 카탈로그 이름을 지정해야 합니다:
apic products:clear --confirm catalog_name
여기서 catalog_name은 카탈로그 이름입니다.

여러 팀이 단일 카탈로그에 있는 제품과 API를 독립적으로 관리할 수 있도록 Space를 사용하여 카탈로그의 파티션을 구분할 수 있습니다. 스페이스 (Space)는 개념적으로 하위 카탈로그와 유사하지만, 한 카탈로그 내의 모든 스페이스에 포함된 제품과 API는 동일한 소비자 카탈로그에 게시된다는 점이 다릅니다. Spaces 에 대한 자세한 내용은 ‘ IBM 에서 피드 API Connect사용’을 참조하십시오.

페이스에 게시된 제품 및 API를 관리하려면 `` apic productsapic apis `` 명령어에 `` --scope space 옵션을 포함하십시오. 예를 들어, 'flights'라는 이름의 페이스에 포함된 제품들을 나열하려면 다음 명령어를 사용하세요:
apic products --scope space --space flights --catalog production --org climbonorg --server platform-api.myserver.com

카탈로그 또는 영역에서 제품의 라이프사이클 상태 변경

이전에 카탈로그 또는 영역에 스테이징되거나 공개된 제품의 라이프사이클 상태를 직접 변경하려면 다음 단계를 완료하십시오.

  • 다음 명령을 입력하세요(끝에 있는 하이픈 문자는 이 명령이 사용자 입력을 기다린다는 의미입니다):
    apic products:update product_name:version --server mgmt_endpoint_url --org organization --scope scope --catalog catalog [--space space] -
    상황:
    • product_name은 해당 라이프사이클 상태를 변경할 제품의 이름입니다.
    • version 은 해당 제품의 버전입니다.
    • mgmt_endpoint_url은 플랫폼 API 엔드포인트 URL입니다.
    • organization은 이전에 제품이 스테이징되거나 공개된 제공자 조직의 이름입니다.
    • scope의 값은 다음 중 하나입니다.
      • catalog -카탈로그에서 공간 이 사용으로 설정되지 않은 경우.
      • space -카탈로그에서 공간 을 사용하는 경우. 매개변수 --scopespace 지정하는 경우, --space 매개변수도 함께 지정해야 합니다.
    • catalog는 이전에 제품이 스테이징되거나 공개된 카탈로그의 이름입니다.
    • (선택 사항) space는 페이스의 이름입니다. 카탈로그에서 공간 을 사용하는 경우 --space 매개변수가 필요합니다. 이 경우 명령에 --scope space 도 포함해야 합니다.
    이 명령에서는 다음과 같은 항목을 리턴합니다.
    Reading PRODUCT_FILE arg from stdin
  • 다음 데이터를 입력한 후 줄 바꾸기를 입력하십시오.
    state: new_state
    여기서 new_state는 제품을 변경할 상태이며 다음 값 중 하나여야 합니다.
    • 스테이징됨
    • 공개됨
    • 더 이상 사용되지 않음
    • 폐기됨
    • 아카이브됨
  • CTRL D를 눌러 입력을 종료하십시오. 명령이 정상적으로 완료된 경우 라이프사이클 상태 변경을 확인합니다.
    예를 들어,
    apic products:update finance:1.0.0 --server https://myserver.com --org development --scope catalog --catalog sandbox -                    
    Reading PRODUCT_FILE arg from stdin
    state: published
    finance:1.0.0    [state: published]   https://myserver.com/api/catalogs/dce12994-a6a1-487b-83b6-c73bd8498799/006827d5-9e82-427a-abe6-be5b126210f7/products/0f0af980-f505-4f36-b09c-d7b1c9c1a2f2
참고:

라이프사이클 상태 변경이 허용되지 않으면 명령이 실패합니다.

예를 들어, 다음과 같은 라이프사이클 상태 변경이 허용됩니다:
  • 기획 단계에서 출판까지
  • 사용 중단에서 공식 종료로
다음과 같은 라이프사이클 상태 변경은 허용되지 않습니다:
  • 출간에서 무대화에 이르기까지
  • 은퇴에서 작가 데뷔까지

전체 세부사항은 제품 라이프사이클을 참조하십시오.

카탈로그 또는 영역의 모든 제품을 해당 라이프사이클 상태와 함께 나열하려면 다음 명령을 사용하십시오.
apic products:list-all --server mgmt_endpoint_url --org organization --scope scope --catalog catalog [--space space]
예를 들어,
apic products:list-all --server https://myserver.com --org development --scope catalog --catalog sandbox
graphql-services:1.0.0    [state: staged]      https://myserver.com/api/catalogs/dce12994-a6a1-487b-83b6-c73bd8498799/006827d5-9e82-427a-abe6-be5b126210f7/products/7652d568-b396-4bfa-bf71-2f18cea63737   
finance:1.0.0             [state: published]   https://myserver.com/api/catalogs/dce12994-a6a1-487b-83b6-c73bd8498799/006827d5-9e82-427a-abe6-be5b126210f7/products/0f0af980-f505-4f36-b09c-d7b1c9c1a2f2
특정 제품의 라이프사이클 상태를 찾으려면 다음 명령을 사용하십시오.
apic products:get product_name:version --server mgmt_endpoint_url --org organization --scope scope --catalog catalog [--space space] --fields state --output -
예를 들어,
apic products:get finance:1.0.0 --server https://myserver.com --org development --scope catalog --catalog sandbox --fields state --output -
state: published

예제 스크립트

조직, 사용자, 앱, 제품 및 API를 생성하고 관리하는 방법을 보여주는 예제 툴킷 스크립트 모음은 https://github.com/ibm-apiconnect/example-toolkit-scripts 에서 확인할 수 있습니다.