3.4. サービスの設定
Private Base URL フィールドに API バックエンドのエンドポイントホストを指定して、API バックエンドを宣言する必要があります。すべての認証、承認、流量制御、および統計が処理された後、APIcast はすべてのトラフィックを API バックエンドにリダイレクトします。
本セクションでは、サービスの設定について各手順を説明します。
3.4.1. API バックエンドの宣言
通常、API のプライベートベース URL は、管理するドメイン (yourdomain.com
) 上で https://api-backend.yourdomain.com:443
のようになります。たとえば、Twitter API と統合する場合、プライベートベース URL は https://api.twitter.com/
になります。
この例では、3scale がホストする Echo API を使用します。これは、任意のパスを受け入れ、リクエストに関する情報 (パス、リクエストパラメーター、ヘッダーなど) を返すシンプルな API です。このプライベートベース URL は https://echo-api.3scale.net:443
になります。
手順
プライベート (アンマネージド) API が動作することをテストします。たとえば、Echo API の場合には
curl
コマンドを使用して以下の呼び出しを行うことができます。curl "https://echo-api.3scale.net:443"
以下のレスポンスが返されます。
{ "method": "GET", "path": "/", "args": "", "body": "", "headers": { "HTTP_VERSION": "HTTP/1.1", "HTTP_HOST": "echo-api.3scale.net", "HTTP_ACCEPT": "*/*", "HTTP_USER_AGENT": "curl/7.51.0", "HTTP_X_FORWARDED_FOR": "2.139.235.79, 10.0.103.58", "HTTP_X_FORWARDED_HOST": "echo-api.3scale.net", "HTTP_X_FORWARDED_PORT": "443", "HTTP_X_FORWARDED_PROTO": "https", "HTTP_FORWARDED": "for=10.0.103.58;host=echo-api.3scale.net;proto=https" }, "uuid": "ee626b70-e928-4cb1-a1a4-348b8e361733" }
3.4.2. 認証の設定
API の認証設定は [Your_product_name] > Integration > Settings の AUTHENTICATION セクションで行うことができます。
フィールド | 説明 |
---|---|
Auth user key | Credentials location に関連付けられたキーを設定します。 |
Credentials location | クレデンシャルが HTTP ヘッダー、クエリーパラメーター、または HTTP Basic 認証として渡されるかどうかを定義します。 |
Host Header | カスタムの Host リクエストヘッダーを定義します。これは、API バックエンドが特定のホストからのトラフィックのみを許可する場合に必要です。 |
Secret Token | API バックエンドに直接送られる開発者リクエストをブロックするために使用します。ここにヘッダーの値を設定し、バックエンドがこのシークレットヘッダーを持つ呼び出しのみを許可するようにします。 |
さらに [Your_product_name] > Integration > Settings の順に移動し、GATEWAY RESPONSE エラーコードを設定できます。エラー発生時 (認証失敗、認証パラメーターがない、および一致するルールがない) のResponse Code、Content-type、およびResponse Bodyを定義します。
レスポンスコード | レスポンスのボディー |
---|---|
403 | Authentication failed |
403 | Authentication parameters missing |
404 | No Mapping Rule matched |
429 | Usage limit exceeded |
3.4.3. API テストコールの設定
API の設定では、リクエストコールを元にテストを行うために、プロダクトを含めたバックエンドのテストを行い、APIcast の設定をステージング環境および実稼働環境にプロモートする必要があります。
それぞれのプロダクトについて、リクエストはパスに従って対応するバックエンドにリダイレクトされます。このパスは、バックエンドをプロダクトに追加する際に設定されます。たとえば、プロダクトに 2 つのバックエンドを追加している場合、それぞれのバックエンドは固有のパスを持ちます。
前提条件
- プロダクトに追加された 1 つまたは複数の バックエンド
- プロダクトに追加された各バックエンドの マッピングルール
- アクセスポリシーを定義するための アプリケーションプラン
- アプリケーションプランを参照する アプリケーション
手順
- [Your_product_name] > Integration > Configuration の順に移動して、APIcast 設定をステージング環境にプロモートします。
APIcast Configuration セクションに、プロダクトに追加された各バックエンドのマッピングルールが表示されます。Promote v.[n] to Staging APIcast をクリックします。
- v.[n] は、プロモート先のバージョン番号を表します。
ステージング環境にプロモートしたら、実稼働環境にプロモートすることができます。Staging APIcast セクションで、Promote v.[n] to Production APIcast をクリックします。
- v.[n] は、プロモート先のバージョン番号を表します。
コマンドラインで API へのリクエストをテストするには、Example curl for testing で提供されるコマンドを使用します。
- curl コマンドの例は、プロダクトの最初のマッピングルールに基づいています。
API へのリクエストをテストする際に、メソッドおよびメトリクスを追加して マッピングルールを変更することができます。
設定を変更したら、API への呼び出しを行う前に、必ずステージング環境および実稼働環境にプロモートするようにしてください。ステージング環境にプロモートする保留中の変更がある場合には、管理ポータルの Integration メニュー項目の横に感嘆符が表示されます。
3scale Hosted APIcast ゲートウェイはクレデンシャルを検証し、API のアプリケーションプランで定義した流量制御を適用します。クレデンシャルがない、あるいは無効なクレデンシャルで呼び出しを行うと、エラーメッセージAuthentication failed
が表示されます。