IBM Cloud Pak for Integration で  IBM API Connect を使用してみた  ～ APIの登録と公開 ～

# 1. IBM Cloud Pak for Integration とは

IBM Cloud Pak for Integrationは、システム連携に必要な機能が、Red Hat OpenShift上のコンテナとして提供される、クラウド時代における統合ソリューションです。
![img_icp_integration_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/e6775a16-d044-3781-3485-255a4c6fc4d2.png)
詳細につきましては、[製品サイト IBM Cloud Pak for Integration - 概要 - 日本 | IBM](https://www.ibm.com/jp-ja/cloud/cloud-pak-for-integration)もご参照ください。

# 2. IBM API Conncet とは

IBM API Connectは、APIの作成の自動化、資産の検出の簡素化、開発者によるセルフサービス・アクセス、組み込みのセキュリティーとガバナンスを実現する、統合API管理ソリューションです。
IBM Cloud Pak for Integrationの1機能として提供されています。

# 3. API Connect を使用する

今回は、以下のIBM Cloud版API Connectチュートリアルを参考に使用して、既存で用意されているAPIサービスをAPI Connectに登録し、API Connect経由で呼び出せるようにします。
[API 仕様を追加して IBM Cloud で REST サービスを呼び出します](https://cloud.ibm.com/docs/apiconnect?topic=apiconnect-tut_add_openapi_rest_bm)

下記記事も参考にさせていただきました。
[IBM API Connect 関連メモ - (1)既存REST APIの取り込み](https://qiita.com/tomotagwork/items/d02f8e6092740b0e782f)

1) IBM Cloud Pak for Integration の環境を準備する。
独自の環境をご用意する場合は、以下の記事を参考にしてください。
[IBM Cloud Pak for Integration の導入](https://qiita.com/ac_qiita/private/901adfdc0459a425801c)

トライアル環境を使用する際は、下記URLから「Start your free trial」をクリックし、トライアル環境をご準備ください。
[Cloud Pak for Integration - Get Started](https://www.ibm.com/cloud/cloud-pak-for-integration/get-started)
![2021-07-19_10h03_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/d051f915-8e90-4d2f-602c-792decbc618b.png)

ここでは、トライアル環境を使用することとします。

2) 管理画面（Platform Navigator)にアクセスします。

3) メニューから、「管理」の中の「Integration capabilities」をクリックします。
![2021-07-19_10h13_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/ea0e67e5-3545-9981-3974-5f4102b300a9.png)

4) リストからTypeが「API Management」となっていものを選択します。
![2021-07-19_10h15_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/4c970802-4ef2-ed3b-f5ea-731804da6e94.png)

5) 「APIおよび製品の開発」を選択します。
![2021-07-19_10h20_36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/31bd4a35-e2d5-5d07-ae6e-f54bef3d6f2c.png)

6) 「追加」をクリックし、「API(REST、GraphSQL、またはSOAP)」を選択します。
![2021-07-19_10h25_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/25236196-4f13-9f81-27e8-039ddc7b8401.png)

7) 「新規Open API」を選択し、「次へ」をクリックします。
![ScreenpressoCapture (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/515a98ac-c5f6-2e72-0fb3-a1775b380b2f.png)

8) タイトルに任意の文字列(ここでは、Weather Provider APIとします）を入力し、「次へ」をクリックします。
![2021-07-19_11h44_51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/5e2bb1c8-1ef6-dd2a-3215-3bd4d3457aba.png)

9) 「クライアントIDを使用した保護」のチェックを外し、「次へ」をクリックします。
![2021-07-19_11h48_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/32b305ba-4d6c-3ed6-0c07-d0232a8bc183.png)

10) 「APIの編集」をクリックします。
![2021-07-19_11h50_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/8c34390c-40d4-e49b-ff73-108178c57c10.png)

11)  API を呼び出す際に返される応答オブジェクトを定義する必要があります。 そのためには、ナビゲーション・バーの「定義」をクリックします。
![2021-07-19_11h54_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/460749f7-fadc-3252-f4e8-bcc76ff3548e.png)

12) 「追加」をクリックします。
![2021-07-19_11h55_55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/97076f9d-7fb4-1499-23a8-ef9e08047660.png)

13) 名前に「Current」と入力し、プロパティーを下記図のように入力し、「保存」をクリックします。
![2021-07-19_13h05_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/084d4f3c-c25b-4051-bd2d-8f16615367e4.png)
![2021-07-19_13h06_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/03bd2175-8416-79e3-1f88-5cbd15f8f597.png)

14) 「Current」オブジェクトができました。
![2021-07-19_13h09_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/7f624154-6835-d1ac-55d8-a3b1ec582b35.png)

15) 同様に「Today」オブジェクトを作成します。
![2021-07-19_13h12_45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/927babe3-30a3-85f8-9638-1b0e3b30138b.png)
![2021-07-19_13h13_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/fe0d4052-fdac-6a03-2a54-58253f29e1a8.png)

16) APIの呼び出しパスを定義します。左ペインのリストから「パス」を選択します。
![2021-07-19_13h17_58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/e12bf093-b833-1505-127e-62fdabdebe82.png)

17) 「/」のパスは不要なので、点が縦に3個並んでいるアイコンをクリックし、「削除」を選択します。
![2021-07-19_13h30_52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/b278a29b-fcba-e612-316e-e62b3915e0eb.png)

18) 「追加」をクリックします。
![2021-07-19_13h33_43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/ef9b5af1-23d4-d94b-3322-b26cf0d7e744.png)

19) 下記図のように入力し、「保存」をクリックし、「/current」パスを作成します。
![2021-07-19_14h10_54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/8d87b939-0639-a1b5-6311-09f701ce0074.png)

20) 同様に、下記図のように入力し、「/today」パスを作成します。
![2021-07-19_14h09_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/865b6df7-ccd5-6d77-70dc-82dd8578d18c.png)

21) 「アセンブル」タブを選択し、呼び出し方法を定義します。
![2021-07-19_13h43_48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/b056a58b-bf95-184f-2661-698eda905cf3.png)

22) 最初からある、「Invoke」は不要のため、ごみ箱アイコンをクリックし、削除します。
![2021-07-19_13h47_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/d6962d03-d34f-1dbc-daf7-3468ccec5d02.png)

23) 左ペインから「操作切り替え」を選択、真ん中のダイアグラムのペインにドラッグ＆ドロップし、追加します。
　　追加したアイコンをクリックし、右側のペインのケースに「get/current」と「get/today」を定義します。
![2021-07-19_13h50_35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/81e424e2-79d4-cc3e-a2d8-b3a7aadc681a.png)

24) 左ペインから「呼び出し」を選択、真ん中のダイアグラムのペインのget/currentの下の線上にドラッグ＆ドロップし、追加します。
　　追加したアイコンをクリックし、右側のペインのタイトルに「inovke-current」、URLにhttps://myweatherprovider.mybluemix.net/current?zipcode=$(request.parameters.zipcode)」を入力します。
![2021-07-19_13h56_59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/2e06c93f-6a8d-edfa-204c-3e91fca4aefb.png)

25) 左ペインから「呼び出し」を選択、真ん中のダイアグラムのペインのget/todayの下の線上にドラッグ＆ドロップし、追加します。
　　追加したアイコンをクリックし、右側のペインのタイトルに「inovke-today」、URLに「https://myweatherprovider.mybluemix.net/today?zipcode=$(request.parameters.zipcode)」を入力します。
![2021-07-19_14h02_34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/8689f32d-2d3e-61ab-3152-fe11d3133d6d.png)

26)「保存」をクリックし、アセンブルの定義を保存します。そのあと、ステータスを「オンライン」にします。
![2021-07-19_14h16_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/3fe2c15d-f5b3-11af-9112-e5dfca6f7c2c.png)

27) 「テスト」タブをクリックして、動作テストしてみます。
![2021-07-19_14h49_59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/425a95e8-7afe-0707-06cb-1de85a0ebe77.png)

28) zipcodeに「10504」を入力して、「送信」ボタンをクリック。結果が返ってくることを確認します。
![2021-07-19_14h58_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/cf47b382-26af-253f-14ae-e2080c004bea.png)

29)点が縦に3個並んでいるアイコンをクリックし、「ステージ」を選択し、ステージングします。
![2021-07-19_14h18_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/5112e90a-c521-55b5-2293-89e82ad02c03.png)

30) 定義したAPI情報を登録する製品の選択画面がでます。今回は既存の製品はないため、新規製品にし、タイトルに「Weather Provider API Product」を入力し、「次へ」をクリックします。
![2021-07-19_14h21_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/9bcda23d-dde4-d84a-ef1f-eeb8bbb36589.png)

31) ステージング先のカタログの選択画面が出るので、「Catalog for Demo use (ddd-demo-test-catalog)」を選択し、「ステージ」をクリックします。
![2021-07-19_14h39_35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/d5b29412-1997-6162-02fc-5b59ed3e75d4.png)

32) 「管理」アイコンをクリックし、ステージングした「Catalog for Demo use (ddd-demo-test-catalog)」カタログを選択します。
![2021-07-19_14h41_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/5b2cae16-c720-0df4-cb57-e54a63354b53.png)

33) 点が縦に3個並んでいるアイコンをクリックし、「公開」を選択し、公開します。
![2021-07-19_14h42_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/f5b4f789-dc29-639a-eadc-cf81389d8bfb.png)