Riscrivi URL

SI APPLICA A: Tutti i livelli di Gestione API

Il criterio rewrite-uri converte un URL di richiesta dal formato pubblico al formato previsto dal servizio Web, come mostrato nell'esempio seguente.

  • URL pubblico - http://api.example.com/storenumber/ordernumber

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

Il criterio può essere usato quando un URL ideale per utenti e/o per il browser deve essere trasformato nel formato di URL previsto dal servizio Web. Il criterio deve essere applicato soltanto quando viene esposto un formato di URL alternativo, ad esempio URL semplici, URL RESTful, URL ideali per gli utenti o URL ideali per SEO, che sono URL puramente strutturali, non includono una stringa di query ma contengono solo il percorso della risorsa, dopo lo schema e l'autorità. Sono spesso usati a fini estetici, di usabilità o di ottimizzazione dei motori di ricerca (SEO, Search Engine Optimization).

Nota

Impostare gli elementi e gli elementi figlio del criterio nell'ordine specificato nell'istruzione del criterio. Altre informazioni su come impostare o modificare i criteri di API Management.

Istruzione del criterio

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

Attributi

Nome Descrizione Richiesto Valore predefinito
annidato URL effettivo del servizio Web con eventuali parametri delle stringhe di query. Le espressioni di criteri sono consentite. Quando si usano le espressioni, l'intero valore deve essere un'espressione. N/D
copy-unmatched-params Specifica se i parametri di query nella richiesta in ingresso non presenti nel modello di URL originale vengono aggiunti all'URL definito dal modello di riscrittura. Le espressioni di criteri sono consentite. No true

Utilizzo

Note sull'utilizzo

Il criterio consente di aggiungere solo parametri delle stringhe di query. Non è possibile aggiungere un parametro di percorso di modello aggiuntivo nell'URL riscritto.

Esempio

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

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: