API 製品の管理

コマンド apic apisapic products を使用して、カタログ 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 - 製品のプロパティーを表示します。 ファイルにダウンロードするには、output 引数を省略します。
apic apis:list-all --scope catalog カタログ内の API のリスト表示を行います。
apic apis:get routes:1.0.0 --output - API プロパティーを取得します。 ファイルにダウンロードするには、output 引数を省略します。
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 カタログから製品を削除します。 製品は、廃棄済みまたは非推奨でなければなりません。

ライフサイクル全体での products コマンドと apis コマンドの使用例

この例では、実行時に新しいバージョンの製品や API で元のバージョンを置き換えるような複雑なライフサイクルを示しています。

注: API を定義する OpenAPI ファイルが、別のファイルで定義された OpenAPI コードのフラグメントを参照するために $ref フィールドを使用する場合、 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 はカタログの名前です。

1 つのカタログ内で複数のチームが製品および API を独立して管理できるように、スペース を使用してカタログを区分化できます。 「 スペース 」は概念的にはサブカタログのようなものですが、カタログ内のすべてのスペースに含まれる製品やAPIは、同じコンシューマーカタログに公開されるという点で異なります。 Spaces の詳細については、 『 IBM での API Connectフィード機能の使用 』を参照してください。

スペースに公開された製品およびAPIを管理するには、`` および ` apic products ` apic 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 。 パラメータ --scope に を space 指定する場合は、パラメータ --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 で入手できます。