Partager via


Réécriture d'URL

S’APPLIQUE À : Tous les niveaux de Gestion des API

La rewrite-uri politique convertit une URL de requête de son formulaire public en celui attendu par le service web.

Utilisez cette politique lorsque vous devez transformer une URL adaptée aux humains ou aux navigateurs en le format d’URL attendu par le service web. Appliquer cette politique uniquement lors de l’exposition d’un autre format d’URL, comme des URL propres, des URLs RESTful, des URLs conviviales ou des URL SEO qui sont purement structurelles et ne contiennent pas de chaîne de requête mais ne contiennent que le chemin de la ressource (après le schéma et l’autorité). Vous faites souvent ce changement pour des raisons esthétiques, d’ergonomie ou d’optimisation pour les moteurs de recherche (SEO).

Notes

Définissez les éléments enfants et de stratégie dans l’ordre fourni dans l’instruction de stratégie. En savoir plus sur comment définir ou modifier des stratégies du service Gestion des API.

Instruction de la stratégie

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

Attributs

Nom Descriptif Obligatoire Par défaut
modèle URL de service web réelle avec les paramètres de chaîne de requête. Les expressions de stratégie sont autorisées. Lorsque vous utilisez des expressions, la valeur entière doit être une expression. Oui N/A
copy-unmatched-params Spécifie si les paramètres de requête dans la requête entrante qui ne sont pas présents dans le modèle d’URL original sont ajoutés à l’URL définie par le modèle de réécriture. Les expressions de stratégie sont autorisées. Non true

Utilisation

Notes d’utilisation

Vous ne pouvez ajouter des paramètres de chaîne de requête qu’en utilisant la politique. Vous ne pouvez pas ajouter de paramètres supplémentaires de chemin de modèle dans l’URL réécrite.

Examples

Exemple 1 : Réécriture basique de l’URL

Dans l’exemple suivant, l’URL publique est réécrite pour correspondre au format de l’URL du service backend, et les paramètres de requête sont inclus selon d’autres logiques.

  • URL publique : http://api.example.com/storenumber/ordernumber

  • URL de la demande : http://api.example.com/v2/US/hardware/storenumber/ordernumber?City&State

<policies>
    <inbound>
        <base />
        <rewrite-uri template="/v2/US/hardware/{storenumber}/{ordernumber}?City=city&State=state" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

Exemple 2 : Copier des paramètres non appariés

Dans l’exemple suivant, l’URL publique est réécrite pour correspondre au format de l’URL du service backend, et la politique copie tous les paramètres de requête non appariés dans la nouvelle URL.

<!-- 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 -->

Exemple 3 : Ne copiez pas les paramètres non appariés

Dans l’exemple suivant, l’URL publique est réécrite pour correspondre au format de l’URL du service backend, et la politique supprime tout paramètre de requête non apparié.

<!-- 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 -->

Exemple 4 : Utiliser l’expression de politique dans le modèle

Dans l’exemple suivant, la politique utilise des expressions dans le modèle pour construire la requête vers le backend.

<policies>
    <inbound>
        <base />
        <set-variable name="apiVersion" value="/v3" />
        <rewrite-uri template="@("/api" + context.Variables["apiVersion"] + context.Request.Url.Path)" />
    </inbound>
</policies>

Pour plus d’informations sur l’utilisation des stratégies, consultez :