1.2. 3scale API の使用状況を把握するために APIcast がマッピングルールをどのように適用するか


API に対するリクエストに基づいて、マッピングルールにより API の使用状況を把握するメトリクスまたはメソッドを定義、指定します。マッピングルールの例を以下に示します。

このルールは、/ で始まるすべての GET リクエストがメトリクス hits のカウントを 1 つ増やすことを意味します。このルールは API に対するすべてのリクエストにマッチします。これは有効なマッピングルールですが、一般的すぎるので、より具体的なルールが追加された時に、2 倍にカウントされることになります。

より具体的なルールの例として、Echo API マッピングルールを以下に示します。

マッピングルールは、API プロダクトレベルおよび API バックエンドレベルで機能します。

  • プロダクトレベルでのマッピングルール

    • このマッピングルールは、バックエンドレベルのマッピングルールに優先します。つまり、プロダクトレベルのマッピングルールが先に評価されます。
    • どのバックエンドがリダイレクトされたトラフィックを受信するかにかかわらず、このマッピングルールは常に評価されます。
  • バックエンドレベルでのマッピングルール

    • バックエンドにマッピングルールを追加すると、それらのマッピングルールはそのバックエンドと結び付くすべてのプロダクトに追加されます。
    • このマッピングルールは、プロダクトレベルで定義されたマッピングルールの後に評価されます。
    • このマッピングルールは、マッピングルールが設定されたバックエンドにトラフィックがリダイレクトされた場合にのみ評価されます。
    • プロダクトに結び付けられるバックエンドのパスが、バックエンドの各マッピングルールの前に自動的に追加されます。

プロダクトレベルおよびバックエンドレベルのマッピングルールの例

1 つのバックエンドが設定されたプロダクトのマッピングルールの例を以下に示します。

  • Echo API バックエンド:

    • プライベートエンドポイント: https://echo-api.3scale.net
    • 以下のパターンの 2 つのマッピングルールが含まれる

      /hello
      /bye
      Copy to Clipboard Toggle word wrap
  • Cool API プロダクト:

    • 公開エンドポイント: https://cool.api
    • ルーティングパス /echo により Echo API バックエンドを使用する
  • Cool API プロダクトには、自動的に以下のパターンのマッピングルールが含まれます。

    /echo/hello
    /echo/bye
    Copy to Clipboard Toggle word wrap

ここで、同じ Echo API バックエンドを使用する Tools For Devs というプロダクトを追加することを考えてみます。

  • Tools For Devs プロダクト:

    • 公開エンドポイント: https://dev-tools.api
    • ルーティングパス /tellmeback により Echo API バックエンドを使用する
  • Tools For Devs プロダクトには、自動的に以下のパターンのマッピングルールが含まれます。

    /tellmeback/hello
    /tellmeback/bye
    Copy to Clipboard Toggle word wrap
  • パターン /ping のマッピングルールを Echo API バックエンドに追加すると、Cool API プロダクトおよび Tools For Devs プロダクトの両方に変更が加えられます。

    • Cool API には、/echo/ping というパターンのマッピングルールが含まれます。
    • Tools For Devs には、/tellmeback/ping というパターンのマッピングルールが含まれます。

マッピングルールの照合

3scale では、前方一致に基づきマッピングルールを適用します。表記法は OpenAPI および ActiveDocs の仕様に準じます。

  • マッピングルールは、スラッシュ (/) で始める必要があります。
  • URL であるリテラル文字列(例: /hello )を使用してパスの照合を行います。

    • マッピングルールを保存すると、設定した URL 文字列にリクエストが送付され、それぞれのマッピングルールで定義したメトリクスまたはメソッドが呼び出されます。
  • マッピングルールでは、クエリー文字列またはボディーにパラメーターを含めることができます(例: /{word}?value={value})
  • APIcast は以下のようにパラメーターを取得します。

    • GET メソッド: クエリー文字列から。
    • POSTDELETE、または PUT メソッド: ボディーから。
  • マッピングルールには、名前付きワイルドカードを含めることができます(例: /{word})。このルールは、プレースホルダー {word} で定義する任意の文字にマッチします。これにより、/morning のようなリクエストがマッピングルールにマッチします。ワイルドカードは、スラッシュとスラッシュの間またはスラッシュとピリオドの間に使用することができます。パラメーターにもワイルドカードを含めることができます。
  • デフォルトでは、指定したソート順に従ってすべてのマッピングルールが上から評価されます。ルール /v1 を追加すると、パスが /v 1 で始まるリクエストにマッチします(例: /v1/word または /v1/sentence )。
  • パターンの最後にドル記号 ($) を追加して、完全一致を指定することができます。たとえば、/v1/word/v1/word リクエストのみに一致し、/ v1/word/hello のリクエストにはマッチしません。完全一致を指定する場合には、すべてにマッチするデフォルトのマッピングルール (/) を必ず無効にする必要があります。
  • 複数のマッピングルールがリクエストのパスにマッチする場合がありますが、マッチするルールがなければ、リクエストは無視され HTTP 404 ステータスコードが返されます。

マッピングルールのワークフロー

マッピングルールに関するワークフローを以下に示します。

  • いつでも新たなマッピングルールを定義することができます。「マッピングルールの定義」を参照してください。
  • 誤って変更されないように、次回のリロード時にマッピングルールはグレーアウト表示されます。
  • 既存のマッピングルールを編集するには、右側にある鉛筆アイコンをクリックして、まずそのルールを有効にする必要があります。
  • ルールを削除するには、ゴミ箱アイコンをクリックします。
  • Integration > Configuration で変更をプロモートすると、すべての変更および削除が保存されます。

他のマッピングルールの停止

1 つまたは複数のマッピングルールを処理した後、他のマッピングルールの処理を停止するには、新規マッピングルールの作成時に Last? を選択します。たとえば、API Integration Settings で以下のマッピングルールを定義し、それぞれのルールに異なるメトリクスが関連付けられていると仮定します。

(get) /path/to/example/search
(get) /path/to/example/{id}
Copy to Clipboard Toggle word wrap

(get)/path/to/example/search の呼び出しを行う場合、ルールが一致すると、APIcast は残りのマッピングルールを処理してそのメトリクスのカウントを増やすのを停止します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat