ローカル Test Environment

使用地元Test Environment(LTE)を使用すると、ネットワークに接続することなく、ローカルマシンでAPIをテストできます。API Connect管理サーバー。 ローカル Test Environment は、ローカル・マシン上で実行される軽量の API Manager です。 これを使用すると、ローカル側で API を迅速にテストすることができます。

API Connect には、ローカル・マシン上で API をテストするための以下のメソッドが用意されています。
  • API のテストで説明されているように、オンライン・モードで実行されている API Designer UI アプリケーションから API を呼び出します。
  • 以下のセクションで説明するように、 cURL コマンドを使用して、 ローカル Test Environment で API を呼び出します。

前提条件

  • API Connect デベロッパーズ・ツールキット( API Designer ユーザー・インターフェースを含む) がインストールされている。 インストールおよび実行の手順については、 API Connect ツールキットのセットアップを参照してください。
  • ローカル Test EnvironmentAPI Designer が連携するためには、それらが同じ API Connect フィックスパック・リリースのものでなければなりません。
  • Docker がインストールされていること。
    注: Local Test Environment は、 Docker バージョン 18.09.xではサポートされていません。
  • 単一のゲートウェイ・タイプを使用する場合は Docker で使用可能な最小 4 GB の RAM、 DataPower® API GatewayDataPower Gateway (v5 compatible) の両方を使用する場合は 6 GB の RAM。
    注: ゲートウェイに公開される API の数を増やすにつれて、さらにメモリーを Dockerに割り振る必要があります。 より大きなデータベースを使用して ローカル Test Environment を開始する必要もあります。 apic-lte startを参照してください。
  • Windows を使用している場合は、 Local Test Environment ファイルが Docker コンテナーからアクセスできるように、 C: ドライブ (または、 HOME ディレクトリーが置かれているドライブ (異なる場合)) が共有ドライブとして有効になっていることを確認してください。

Local Test Environment

ローカル Test Environmentのインストールには、以下の 2 つのオプションがあります。
  • 各ユーザーは、 Local Test Environment イメージをローカル・マシンにダウンロードし、そこから Local Test Environment をインストールします。
  • 1 人のユーザーが Local Test Environment イメージをダウンロードし、それらをプライベート Docker レジストリーにアップロードします。そこから、すべてのユーザーが Local Test Environmentをインストールできます。
ローカル Test Environment ローカル・マシンからインストールするには、以下の手順を実行します。
  1. ブラウザを開き、API Connectお知らせページにアクセスし、お使いの製品バージョンを検索して、製品お知らせページの「ダウンロード」テーブルを見つけます。 この表で、以下の各ファイルをダウンロードするリンクをクリックします。
    • 必要なすべての Docker イメージが入っている apic-lte-images-version.tar.gz

      例: apic-lte-images-10.0.2.tar.gz

    • apic-lte-platform-version、これらはバイナリファイルで、 macOS、 Linux®、Windowsプラットフォーム用のバイナリファイルです。
      例:
      • macOS: apic-lte-osx-10.0.2
      • Linux: apic-lte-linux-10.0.2
      • Windows: apic-lte-win-10.0.2
  2. macOSまたはLinuxプラットフォームでは、chmodコマンドを使ってバイナリファイルを実行可能にする:
    chmod +x linux-apic-lte
  3. 次のコマンドを入力して、Docker イメージをローカル Docker イメージ・リポジトリーにロードします。
    docker load < apic-lte-images.tar.gz
注: このページの残りの部分で使用されるすべての Local Test Environment コマンドでは、以下のように、ご使用のプラットフォームに応じて、 platformmacOSlinux、または windowsに置き換えます。
  • macOS : platform-apic-lteosx-apic-lte
  • Linux: platform-apic-ltelinux-apic-lte に置き換えます。
  • Windows: platform-apic-lte win-apic-lte に置き換えます。
Local Test Environment イメージをプライベート Docker レジストリーにアップロードするには、以下の手順を実行します。
  1. ステップ 1の説明に従って、 IBM_API_CONNECT_LOCAL_TEST_ENVIRO.zip ファイルをダウンロードします。
  2. プラットフォームに応じて、該当するバイナリー・ファイルをすべてのユーザーに配布します。
  3. ローカル Test Environment をプライベート Docker レジストリーにアップロードします。以下のコマンドを入力します。
    platform-apic-lte registry-upload apic-lte-images.tar.gz registry_host
    ここで、registry_host は、非公開の Docker レジストリーのホスト名または IP アドレスです。 これで、以下のように、すべてのユーザーが ローカル Test Environment をインストールして実行できるようになりました。
    1. 非公開の Docker レジストリーに認証が必要である場合、次のコマンドを入力してログインします。
      docker login registry_host
    2. 次のコマンドを入力して、Docker イメージをローカル Docker イメージ・リポジトリーにロードします。
      platform-apic-lte init registry_host

ローカル Test Environment

  1. 以下のコマンドを実行して、 Docker イメージを開始します。
    platform-apic-lte start
    注:
    • デフォルトでは、 platform-apic-lte start コマンドは DataPower API Gatewayのみを開始します。 DataPower Gateway (v5 compatible)も開始するには、次のコマンドを入力します。
      platform-apic-lte start --datapower-gateway-enabled --datapower-api-gateway-enabled
    • 「ローカル」 Test Environment は、 Error: certificate is not yet valid および CERT_NOT_YET_VALIDというストリングを含むエラー・メッセージで開始できない場合があります。 最も可能性の高い原因は、 ローカル Test Environmentを実行しているマシンの日時設定が正しくないことです。 start コマンドを再試行する前に、日時の設定が正しいことを確認してください。 Windows 用の Docker を使用する場合、特にマシンがスリープ・モードに入った後に、Docker コンテナー内のクロックがシステム・クロックと非同期になる可能性があります。 この場合、 Docker を再始動すると、クロックの矛盾が修正されます。詳しくは、 https://github.com/docker/for-win/issues/4526を参照してください。
    • デフォルトでは、LTE は、空のバックエンド・データベースで開始されます。このバックエンド・データベースには、以前の LTE の実行で公開された可能性のある API や製品は含まれていません。 前回の実行時に使用されたバックエンド・データベースで LTE を開始するには、フラグ --keep-config を使用します (例えば platform-apic-lte start --keep-config)。 --keep-config を使用した場合、start で指定された他のフラグはすべて無視されます。 代わりに、以前の開始時に使用されたのと同じフラグが使用され、特に同じゲートウェイが有効になります。
  2. 以下のコマンドを実行して、ローカル Test Environment がインストールされ、正しく実行されていることを確認します。
    1. LTE コンポーネントの状況を確認します。
      platform-apic-lte status
      このコマンドからの出力はすべてのコンポーネントの状況を示し、エンドポイントと認証の詳細を表示し、次のようになるはずです。
      Container                       Status
      ---------                       ------
      apic-lte-apim                   Up 3 minutes
      apic-lte-datapower-gateway      Not Running
      apic-lte-datapower-api-gateway  Up 2 minutes
      apic-lte-db                     Up 3 minutes
      apic-lte-juhu                   Up 3 minutes
      apic-lte-lur                    Up 3 minutes
      
      - Platform API url: https://localhost:2000
      - Admin user: username=admin, password=7iron-hide
      - 'localtest' org owner: username=shavon, password=7iron-hide
      - 'localtest' org sandbox test app credentials client id: 80963e74076afe50d346d76401c3c08a
      - Datapower API Gateway API base url: https://localhost:9444/localtest/sandbox/
    2. 管理サーバーにログインします。
      apic login --server localhost:2000 --username shavon --password 7iron-hide --realm provider/default-idp-2
      
      このコマンドは管理サーバーにログインできることを確認し、応答は次のようになります。
      Logged into localhost:2000 successfully
      既知の問題: ログイン中にエラーを受け取った場合は、LTE をいったん停止してから再始動してから、再度ログインしてください。
注:ローカル・Test Environment環境のツールキット認証情報を設定するには、以下のコマンドを使用します:
apic client-creds:set ~/.apic-lte/credentials.json

ローカル Test Environment

「ローカル」 Test Environmentでテストするために API を準備するには、その API を 「ローカル」 Test Environmentのサンドボックス・カタログに公開する必要があります。 既に公開した API をテストする場合は、 ローカル Test Environmentに進みます。, そうでない場合、以下のステップを実行します。
  1. 以下のコマンドでAPI Designerユーザーインターフェイスを起動します:
    APIC_DESIGNER_CREDENTIALS=~/.apic-lte/credentials.json <path-to-designer>
  2. 必要なローカル・ディレクトリーを開きます。これは、API と製品定義ファイルが保管されるディレクトリーです。
  3. 「ローカル」 Test Environmentに接続します。 以前に 「ローカル」 Test Environmentに接続していない場合は、 「別のクラウドの追加」をクリックしてから、以下の手順を実行します。
    1. HOST URL フィールドに「 https://localhost:2000 」と入力し、「 Next 」をクリックする。
    2. 「ユーザー名」 フィールドに shavonと入力し、 「パスワード」 フィールドに 7iron-hideと入力して、 「サインイン」をクリックします。
      注:
      • https://localhost:2000 を使用してローカル・ Test Environment環境に接続できない場合は、代わりに HOST URL フィールドに https://127.0.0.1:2000 と入力してください。
      • ログイン中にエラーを受け取った場合は、LTE をいったん停止してから再始動してから、API Designer を使用して再度ログインしてください。

    以前に 「ローカル」 Test Environmentに接続したことがある場合は、既存のタイルをクリックしてすぐにログインします。

    API Designer のウェルカム・ページが開きます。

  4. 「API および製品の開発」をクリックしてから、テストする API をクリックします。 API定義の構成方法の詳細については、APIとアプリケーションの開発を参照してください。
  5. テストする前に API を公開する必要があります。 APIの公開方法については、Publishing draft Productを参照してください
    注: API に変更を加えた場合は、再テストの前にその API を再公開する必要があります。

Local Test Environmentでの API のテスト。

ローカル・ Test Environment環境でAPIをテストするには、以下の URLに REST APIコールを発行する:
https://localhost:9444/localtest/sandbox/basepath/operation_path?client_id=lte_client_id
ここで、それぞれ以下のとおりです。
  • basepath は、API 定義で構成される基本パスです。
  • operation_path は、API 定義で構成されたとおり、起動する操作のパスです。
  • lte_client_id は、ステップ 2platform-apic-lte status コマンドによって返された、ローカル・テスト環境内のテスト・アプリケーションのクライアント ID です。
以下の例は、 curl ユーティリティーを使用して、チュートリアル「 プロキシー REST API 定義の作成」で作成された API をテストする方法を示しています。この API は、銀行支店の詳細を返します。
curl -k https://localhost:9444/localtest/sandbox/branches/details?client_id=80963e74076afe50d346d76401c3c08a
[{"id":"0b3a8cf0-7e78-11e5-8059-a1020f32cce5","type":"atm","address":{"street1":"600 Anton Blvd.","street2":"Floor 5","city":"Costa Mesa","state":"CA","zip_code":"92626"}},
{"id":"9d72ece0-7e7b-11e5-9038-55f9f9c08c06","type":"atm","address":{"street1":"4660 La Jolla Village Drive","street2":"Suite 300","city":"San Diego","state":"CA","zip_code":"92122"}},
{"id":"ae648760-7e77-11e5-8059-a1020f32cce5","type":"atm","address":{"street1":"New Orchard Road","city":"Armonk","state":"NY","zip_code":"10504"}},
{"id":"c23397f0-7e76-11e5-8059-a1020f32cce5","type":"branch","phone":"512-286-5000","address":{"street1":"11400 Burnet Rd.","city":"Austin","state":"TX","zip_code":"78758-3415"}},
{"id":"ca841550-7e77-11e5-8059-a1020f32cce5","type":"atm","address":{"street1":"334 Route 9W","city":"Palisades","state":"NY","zip_code":"10964"}},
{"id":"dc132eb0-7e7b-11e5-9038-55f9f9c08c06","type":"branch","phone":"978-899-3444","address":{"street1":"550 King St.","city":"Littleton","state":"MA","zip_code":"01460-1250"}},
{"id":"e1161670-7e76-11e5-8059-a1020f32cce5","type":"branch","phone":"561-893-7700","address":{"street1":"5901 Broken Sound Pkwy. NW","city":"Boca Raton","state":"FL","zip_code":"33487-2773"}},
{"id":"f9ca9ab0-7e7b-11e5-9038-55f9f9c08c06","type":"atm","address":{"street1":"1 Rogers Street","city":"Cambridge","state":"MA","zip_code":"02142"}}]

ローカル Test Environment コマンド

以下の表は、 Local Test Environment コマンドの要約です。 help コマンドを使用して、すべてのコマンドの完全な使用法の詳細を取得してください。
表 1. ローカル Test Environment コマンドの要約
コマンド 説明
platform-apic-lte help command コマンドのヘルプ情報を表示します。
platform-apic-lte init Local Test Environment Docker イメージをダウンロードします。
platform-apic-lte start Local Test Environment Docker イメージを開始します。 --database-max-heap-size パラメーターを使用して、 Local Test Environment データベースのサイズをバイト単位で設定します。以下に例を示します。
linux-apic-lte start --database-max-heap-size 4096M
linux-apic-lte start --database-max-heap-size 1G
linux-apic-lte start --database-max-heap-size 1048576K
linux-apic-lte start --database-max-heap-size 1073741824
デフォルト値は 1024Mです。
ヒント: デフォルトでは、 platform-apic-lte start コマンドは以前のデータをすべて削除し、 「ローカル」 Test Environment 構成を再初期化するため、以前の構成 (公開された製品を含む) はすべて削除されます。 以前の構成を保持し、以前の platform-apic-lte start コマンドで使用されたのと同じコマンド・パラメーターを適用するには、--keep-config パラメーターを指定します。
platform-apic-lte status Local Test Environment コンポーネントの状況情報、およびエンドポイントと認証の詳細を表示します。
platform-apic-lte stop Local Test Environment Docker イメージを停止します。
platform-apic-lte version ローカル Test Environment のバージョン情報を表示します。

Local Test Environment

以下のコマンドを使用して、各 Local Test Environment マイクロサービスまたはデータベースのログ・ファイルを調べることができます。

docker logs container-name
ここで、 container-name は、以下のいずれかです。
  • apic-lte-juhu: 認証ゲートウェイ
  • apic-lte-apim: API Management サービス
  • apic-lte-lur: ローカル・ユーザー・レジストリー
  • apic-lte-db: API Management サービスの Postgres データベース
  • apic-lte-datapower-api-gateway: DataPower API Gateway
  • apic-lte-datapower-gateway: DataPower Gateway (v5 compatible)

ゲートウェイ・ログには、以下のいずれかの方法でアクセスできます。

  • ゲートウェイ管理 Web UI を使用します。
    1. ブラウザーで https://localhost:web_ui_port ページを開きます。必要なポート値について詳しくは、 ローカル Test Environment ポート値を参照してください。
    2. apiconnect ドメインと WebGUI インターフェースを選択し、ユーザー名 admin とパスワード admin を使用してログインします。
    3. 「ログの表示」をクリックします。
  • ゲートウェイ管理 CLI を使用します。
    1. 次のコマンドを使用して、SSH 接続を開きます。
      ssh -p gateway-ssh-port localhost
      必要なポート値について詳しくは、 ローカル Test Environment のポート値を参照してください。 ユーザー名は admin で、パスワードは adminです。
    2. コマンド switch domain apiconnect を入力します。
    3. ゲートウェイ・ログを表示するには、show log コマンドを入力します。
    4. ゲートウェイと API 管理システム間の通信のログを表示するには、show logging gwd-log コマンドを入力します。

ローカル Test Environment のポート値

Local Test Environment コンポーネントのいずれかのデフォルト・ポート値が、ご使用のシステムで既に使用されているポートと競合する場合は、1 つ以上の --component port_value パラメーターを platform-apic-lte start コマンドに渡すことにより、 Local Test Environment の開始時にそれらの値を変更できます。ここで、
  • component は、ポート値を変更する ローカル Test Environment コンポーネントです。
  • port_value は必須の値です。
例:
platform-apic-lte start --datapower-api-gateway-api-port 9445
次の表は、コンポーネントを、対応する component パラメーターとデフォルトのポート値と一緒にリストしています。
コンポーネント component パラメーター デフォルト・ポート値
DataPower API Gateway API ポート datapower-api-gateway-api-port 9444
DataPower API Gateway API Connect サービス・ポート datapower-api-gateway-apic-service-port 3001
DataPower API Gateway REST 管理ポート datapower-api-gateway-rest-management-port 5555
DataPower API Gateway SSHポート datapower-api-gateway-ssh-port 9023
DataPower API Gateway 管理 Web UI datapower-api-gateway-web-gui-port 9091
DataPower API Gateway XML 管理ポート datapower-api-gateway-xml-management-port 5551
DataPower Gateway (v5 compatible) API ポート datapower-gateway-api-port 9443
DataPower Gateway (v5 compatible) API Connect サービス・ポート datapower-gateway-apic-service-port 3000
DataPower Gateway (v5 compatible) REST 管理ポート datapower-gateway-rest-management-port 5554
DataPower Gateway (v5 compatible) SSHポート datapower-gateway-ssh-port 9022
DataPower Gateway (v5 compatible) 管理 Web UI datapower-gateway-web-gui-port 9090
DataPower Gateway (v5 compatible) XML 管理ポート datapower-gateway-xml-management-port 5550
プラットフォーム API ポート platform-api-port 2000 年