URL の書き換え

適用対象: すべての API Management レベル

rewrite-uri ポリシーは、次の例に示すように、要求 URL をパブリックな形式から Web サービスで想定されている形式に変換します。

  • パブリック URL - http://api.example.com/storenumber/ordernumber

  • 要求 URL - http://api.example.com/v2/US/hardware/storenumber&ordernumber?City&State

このポリシーは、人間やブラウザーにとって使いやすい URL を Web サービスで求められる URL 形式に変換する必要がある場合に使用します。 このポリシーを適用する必要があるのは、クリーン URL、RESTful URL、ユーザーフレンドリ URL、SEO フレンドリ URL などの、(スキーマと機関の後に) クエリ文字列を含まずリソースのパスのみを含む純粋に構造的な URL のような代替 URL 形式を公開するときのみです。 これは、一般的に、美学上、使いやすさ、または検索エンジン最適化 (SEO) の目的で行われます。

Note

ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。

ポリシー ステートメント

<rewrite-uri template="uri template" copy-unmatched-params="true | false" />

属性

Name 説明 必要 Default
template クエリ文字列パラメーターを設定した実際の Web サービス URL。 ポリシー式を使用できます。 式を使用するときは、値全体が式である必要があります。 はい 該当なし
copy-unmatched-params 元の URL テンプレートに存在しない着信要求のクエリ パラメーターを、書き換えテンプレートで定義されている URL に追加するかどうかを指定します。 ポリシー式を使用できます。 いいえ true

使用法

使用上の注意

ポリシーを使用して追加できるのはクエリ文字列パラメーターのみです。 書き換え URL にさらにテンプレート パス パラメーターを追加することはできません。

<policies>
    <inbound>
        <base />
        <rewrite-uri template="/v2/US/hardware/{storenumber}&{ordernumber}?City=city&State=state" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>
<!-- Assuming incoming request is /get?a=b&c=d and operation template is set to /get?a={b} -->
<policies>
    <inbound>
        <base />
        <rewrite-uri template="/put" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>
<!-- Resulting URL will be /put?c=d -->
<!-- Assuming incoming request is /get?a=b&c=d and operation template is set to /get?a={b} -->
<policies>
    <inbound>
        <base />
        <rewrite-uri template="/put" copy-unmatched-params="false" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>
<!-- Resulting URL will be /put -->

ポリシーに対する処理の詳細については、次のトピックを参照してください。