1.3. 特殊な要求を持つ API を APIcast がどのように処理するか

API 利用者が API を適切に呼び出すことができるように、カスタム APIcast 設定が必要となる特殊なケースがあります。

Host ヘッダー

このオプションは、Host ヘッダーが指定した値にマッチしない限りトラフィックを拒否する API プロダクトにのみ必要です。このような場合には、Host がゲートウェイの 1 つなので、ゲートウェイが API プロダクトの前にあることで問題が生じます (例: xxx-yyy.staging.apicast.io)。

この問題を避けるには、AUTHENTICATION SETTINGS ([Your_product_name] > Integration > Settings) の Host Header フィールドで、API プロダクトが想定するホストを定義します。

これにより、Hosted APIcast インスタンスはリクエストの呼び出しのホストに関する定義を書き換えます。

Host Rewrite

API バックエンドの保護

APIcast が実稼動環境で動作するようになった後、API プロダクトへの直接アクセスを、指定したシークレットトークンを持つ呼び出しだけに制限することが望まれる場合があります。そのためには、APIcast の シークレットトークン を設定します。シークレットトークンの設定方法については、「高度な APIcast 設定」を参照してください。

プライベート API を扱う APIcast の使用

APIcast を使用して、インターネット上に公開されていない API を保護することができます。そのための条件は以下のとおりです。

  • デプロイメントオプションとして、Self-managed APIcast を使用している。
  • 一般のインターネットから APIcast へのアクセスが可能で、APIcast が 3scale Service Management API に発信の呼び出しを行うことができる。
  • APIcast が API プロダクトにアクセスすることができる。

    この場合には、Private Base URL フィールドに API の内部ドメイン名または IP アドレスを設定し、他の手順は通常どおりに実施することができます。ただし、この設定により、ステージング環境のメリットを活用することができなくなります。ステージング用 APIcast インスタンスは 3scale がホストしていて、プライベート API バックエンドにはアクセスすることができないため、テストコールは成功しません。APIcast を実稼働環境にデプロイして正しく設定すれば、APIcast は想定どおりに機能します。