はじめに
前回の記事では、IBM Cloud Functionsにデプロイしたサービスを、API Gateway経由で呼び出してみました。
今回は外部で提供されているAPIをAPI Gateway経由で呼び出してみます。
前提
前回の手順1に記載されているように、API Gateway Serviceはデプロイ済みとします。
手順
- Create an API Proxyをクリックします。
- API名、パス、呼び出し先外部APIを指定します。
- APIキーで保護します。ここではデフォルトのX-IBM-Client-IDからX-API-Keyに変更します。
- 流量制御を設定し、OAuth 2.0は使わず、CORSはOnにしておきます。
- 作成済みのAPI Gatewayとリージョンを選択してCreateをクリックします。
- APIが作成されます。
- APIキーを作成します。Manage sharing and keysからCreate API Keyをクリックして、APIキーを生成します。自動生成でもいいですし、好きな文字列をいれるCustom keyも可能です。
- APIキーができたことを確認します
- Review and TestからAPIドキュメントを確認できます。
- 上記から試し打ちも可能ですが、今回は直接Postmanから試してみます。APIドキュメントで確認したエンドポイントをURLに入れ、メソッドはGET、ヘッダーにX-API-Keyと値を指定して呼ぶと、IBM Cloud API Gateway Service経由でビットコイン関連情報のレスポンスが取得できました。
- リクエスト数が流量制御の上限を超えると429エラーを返します。
- APIキー外すと401エラーを返します。
まとめ
今回はIBM Cloud外のサービスをIBM Cloud API Gateway Serviceを経由して呼び出してみました。本来でしたら、ここで呼び出す外部サービスは自社のAPI対応したサービスのエンドポイントなどになりますが、ここでは利便性のため外部サービスはAPIキーがなくても呼び出せるAPIを使って、IBM Cloud API Gateway Serviceが簡単に使えることを試してみました。
参考
- APIキーがなくても呼べるAPI一覧
- IBM Cloud API Management