API Connect v2018で新しくなったDeveloper Toolkit

# API Connect v2018 のリリース
2018年11月15日にAPI Connect V2018.4.1.0 LTS(Long Term Support)版がリリースされました。
v2018 LTSの情報は、[発表レター](http://www-01.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/1/760/JAJPJP18-0581/index.html&lang=jp&request_locale=ja)が出ているのでこちらを参考ください。

こちらでは、以前のバージョン v5から提供されていたDeveloper Toolkitについて新しくなった点をまとめます。Developer Toolkitは、LoopBackフレームワークを利用し容易にAPIを作成するツールです。

# Developer Toolkitの提供方法
以前のバージョンv5では、Developer Toolkitのインストールはかなり面倒でした。しかし、v2018では、実行可能ファイルとして提供され、インストールが不要になりました。Node.js として、v8.0系が前提として必要です。
また、Toolkitは2つのオプションで提供されるようにもなりました。Developer Toolkitの入手方法、インストール方法は[Knowledge Center](https://www.ibm.com/support/knowledgecenter/en/SSMNED_2018/com.ibm.apic.toolkit.doc/tapim_cli_install.html)に記載があるので参考にしています。

- **CLI**: API Managerと連携する管理系のCommand Line Interface
- **CLI + LoopBack + Designer**: 上記にプラスしてLoopBack開発ができるCommand Line Interfaceと、GUIで提供されるAPI Desingerアプリの実行ファイル

# 入手方法

[Fix Central](https://www-945.ibm.com/support/fixcentral/)からIBM API Connectを指定し、ダウンロードすることが可能です。以下は、Fix CentralでのDeveloper Toolkitのリストのキャプチャー画像です。
![スクリーンショット 2018-11-26 18.40.12.png](https://qiita-image-store.s3.amazonaws.com/0/121209/e230ba36-e083-79d3-30c4-aaff4c65fd45.png)

プラットフォーム毎、オプションによってダウンロードするものが変わります。

|オプション|Mac OS X      |Linux        |Windows      |
|:-----------------|:------------------|:------------------|:------------|
| CLI              |toolkit-mac_lts_v2018.4.1.0.zip |toolkit-linux_lts_v2018.4.1.0.tgz |toolkit-windows_lts_v2018.4.1.0.zip |
| CLI + LoopBack + Designer |toolkit-loopback-designer-mac_lts_v2018.4.1.0.zip |toolkit-loopback-designer-linux_lts_v2018.4.1.0.tgz |toolkit-loopback-designer-windows_lts_v2018.4.1.0.zip |

ダウンロードしたファイルには、実行可能ファイルが圧縮されています。

|オプション|Mac OS X      |Linux        |Windows      |
|:-----------------|:------------------|:------------------|:------------|
| CLI              |apic-slim |apic-slim |apic-slim.exe |
| CLI + LoopBack + Designer |apic, API Designer.app |apic, api_designer-linux |apic.exe, api_designer-win.exe |

- **apic-slim** CLIツール
- **apic** LoopBack含むCLIツール
- **API Designer** GUIで提供されるGUIツール

# 実行方法
MacやLinuxで、ダウンロードしたファイルを実行するには、実行権限をつける必要があります。
> chmod +x ファイル名

マニュアルのKnowledge Centerには、apic でのコマンド表記で解説されています。CLIのみの apic-slim を使用する場合、マニュアルをapic-slimと読み替える、ファイル名を変更する、alias名をつけるなどしてください。

## CLIコマンドの実行

CLIコマンドを実行すると、オプションなどが確認できます。以下はapic-slimの例です。API Managerで設定できる項目が確認できます。

```apic-slim
$ ./apic-slim
APIConnect toolkit 5f21c8b5c63de5a84e7b121409eb21e6f69dde6b (Built 2018-11-06T02:55:24Z)

使用法: 
  apic [flags]
  apic [command]

使用可能フラグ:
      --accept-license        API Connect のライセンスに同意する
      --debug                 デバッグ出力を有効にする
      --debug-output string   デバッグ出力をファイルに書き込む
  -h, --help                  apic のヘルプ
      --live-help             限定的な使用状況情報の追跡を有効または無効にする
  -m, --mode string           ツールキット動作モード (default "apim")

使用可能コマンド:

  アプリケーションと成果物の作成
     config                                    構成変数の管理
     create                                    API または製品定義の作成

  クラウドへの公開
     analytics                                 分析の操作
     analytics-services                        分析サービスの操作
     apis                                      API の操作
     application-types                         アプリケーション・タイプの操作
     apps                                      アプリケーションの操作
     associates                                関連付けの操作
     availability-zones                        アベイラビリティー・ゾーンの操作
     billings                                  請求の操作
     catalog-settings                          カタログ設定の操作
     catalogs                                  カタログの操作
     cloud-settings                            クラウド設定の操作
     configured-api-user-registries            構成済みの API ユーザー・レジストリーの操作
     configured-billings                       構成済みの請求の操作
     configured-catalog-user-registries        構成済みのカタログ・ユーザー・レジストリーの操作
     configured-gateway-services               構成済みのゲートウェイ・サービスの操作
     configured-oauth-providers                構成済みの OAuth プロバイダーの操作
     configured-tls-client-profiles            構成済みの TLS クライアント・プロファイルの操作
     consumer-org-settings                     コンシューマー組織の設定の操作
     consumer-orgs                             コンシューマー組織の操作
     credentials                               資格情報の操作
     draft-apis                                ドラフト API の操作
     draft-products                            ドラフト製品の操作
     drafts                                    ドラフトの操作
     entries                                   エントリーの操作
     extensions                                拡張の操作
     gateway-extensions                        ゲートウェイ拡張の操作
     gateway-services                          ゲートウェイ・サービスの操作
     global-policies                           グローバル・ポリシーの操作
     global-policy-posthooks                   グローバル・ポリシー Posthook の操作
     global-policy-prehooks                    グローバル・ポリシー Prehook の操作
     groups                                    グループの操作
     identity-providers                        identity_providers_topic_short
     integrations                              統合の操作
     invitations                               招待の操作
     jobs                                      ジョブの操作
     keystores                                 鍵ストアの操作
     mail-servers                              メール・サーバーの操作
     me                                        自分の操作
     member-invitations                        メンバーの招待の操作
     members                                   メンバーの操作
     notification-templates                    通知テンプレートの操作
     oauth-providers                           Oauth プロバイダーの操作
     org-settings                              組織の設定の操作
     orgs                                      組織の操作
     permissions                               許可の操作
     policies                                  ポリシーの操作
     portal-services                           ポータル・サービスの操作
     primary-events                            プライマリー・イベントの操作
     products                                  製品の操作
     properties                                プロパティーの操作
     registrations                             登録の操作
     role-defaults                             ロール・デフォルトの操作
     roles                                     ロールの操作
     services                                  サービスの操作
     space-settings                            スペース設定の操作
     spaces                                    スペースの操作
     subscriber-events                         サブスクライバー・イベントの操作
     subscriptions                             サブスクリプションの操作
     tasks                                     タスクの操作
     tls-client-profiles                       TLS クライアント・プロファイルの操作
     tls-server-profiles                       TLS サーバー・プロファイルの操作
     truststores                               トラストストアの操作
     user                                      ユーザーの操作
     user-registries                           ユーザー・レジストリーの操作
     user-registry-settings                    ユーザー・レジストリー設定の操作
     users                                     ユーザーの操作
     webhooks                                  Web フックの操作

  その他のコマンド
     licenses                                  API Connect のライセンスの確認
     login                                     IBM API Connect クラウドへのログイン
     logout                                    IBM API Connect クラウドからのログアウト
     validate                                  API 定義または製品定義を検証します
     version                                   APIConnect ツールキット・バージョンの取得
     wsdl                                      WSDL ファイルの管理


追加のヘルプ・トピック:

「apic [command] --help」と入力すると、コマンドの詳細情報が表示されます。
```

LoopBackが追加されている、apic のコマンドでは、１行だけLoopBackのオプションが追加されたものが出力されます。後は同じです。最後の方に lb オプションの説明があります。

```apic
$ ./apic
APIConnect toolkit 5f21c8b5c63de5a84e7b121409eb21e6f69dde6b (Built 2018-11-06T02:55:24Z)

使用法: 
  apic [flags]
  apic [command]

使用可能フラグ:
      --accept-license        API Connect のライセンスに同意する
      --debug                 デバッグ出力を有効にする
      --debug-output string   デバッグ出力をファイルに書き込む
  -h, --help                  apic のヘルプ
      --live-help             限定的な使用状況情報の追跡を有効または無効にする
  -m, --mode string           ツールキット動作モード (default "apim")

使用可能コマンド:

  アプリケーションと成果物の作成
     config                                    構成変数の管理
     create                                    API または製品定義の作成
     lb                                        ループバック・アプリケーションの作成と管理

----以下略-----
```

lbオプションを使用することで、CLIを利用したLoopBackを利用したRESTアプリケーションは、簡単に作成できます。

## API Designerの実行
次にAPI Designerを実行してみます。Macでは、API Designer.appを起動するだけです。起動すると以下のような画面が表示されます。
![designer.png](https://qiita-image-store.s3.amazonaws.com/0/121209/85a9efd1-32b1-e6f6-1b70-073e9d4df8c5.png)

API Designerでは、API Managerのホスト名とユーザーを指定する必要があります。API Managerを構成しているとGUI操作ができます。API Managerを構成していないため、ここまでです。
API Managerは接続とは別にローカルで稼働してほしいところです。

# まとめ
V5のDeveloper Toolkitに比べ、インストールが非常に簡単になっていました。前提ソフトはNode.js V8系で、後は実行ファイルを起動するだけです。