API 제품 관리

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

제품 관리 명령 요약

다음 테이블은 API 제품을 관리하기 위해 사용 가능한 명령을 요약합니다. 사용법 예제가 다음에 표시됩니다.
명령 예 설명
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.com API 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 으로 바꾸는 경우 명령에 지정된 제품은 climbon:1.0.1 입니다.

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

추가 제품 및 API 작업

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

여러 팀이 단일 카탈로그에 있는 제품과 API를 독립적으로 관리할 수 있도록 Space를 사용하여 카탈로그의 파티션을 구분할 수 있습니다. 스페이스는 개념적으로 하위 카탈로그와 같지만 카탈로그 내의 모든 스페이스에 있는 제품 및 API가 동일한 CMS 포털에 게시된다는 점을 제외하면 하위 카탈로그와 유사합니다. 스페이스에 대한 자세한 내용은 IBM API Connect 에서 신디케이션 사용을 참조하세요.

스페이스에 게시된 제품 및 API를 관리하려면 apic productsapic apis 명령에 --scope space 옵션을 포함하세요. 예를 들어 항공편이라는 스페이스에 포함된 제품을 나열하려면 다음 명령을 사용합니다:
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 -카탈로그에서 공간 을 사용하는 경우. --scope 매개변수에 space 을 지정하는 경우 --space 매개변수도 함께 제공해야 합니다.
    • catalog는 이전에 제품이 스테이징되거나 공개된 카탈로그의 이름입니다.
    • (선택 사항) 스페이스는 스페이스의 이름입니다. 카탈로그에서 공간 을 사용하는 경우 --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.