Partilhar via


Reescrever URL

APLICA-SE A: Todas as camadas de gerenciamento de API

A rewrite-uri política converte um URL de pedido do seu formulário público para o formulário esperado pelo serviço web.

Use esta política quando precisar de transformar um URL amigável para humanos ou navegador no formato de URL esperado pelo serviço web. Aplique esta política apenas ao expor um formato alternativo de URL, como URLs limpos, URLs RESTful, URLs amigáveis para o utilizador ou URLs amigáveis para SEO que sejam puramente estruturais e não contenham uma cadeia de consulta, mas que contenham apenas o caminho do recurso (após o esquema e a autoridade). Muitas vezes faz esta alteração por razões estéticas, de usabilidade ou otimização para motores de busca (SEO).

Nota

Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Saiba mais sobre como definir ou editar políticas de Gerenciamento de API.

Declaração de política

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

Atributos

Nome Descrição Necessário Predefinição
modelo A URL real do serviço Web com quaisquer parâmetros de cadeia de caracteres de consulta. São permitidas expressões de política. Quando as expressões são usadas, todo o valor deve ser uma expressão. Sim N/A
cópia-params incomparáveis Especifica se parâmetros de consulta no pedido recebido que não estão presentes no modelo de URL original são adicionados à URL definida pelo modelo de reescrita. São permitidas expressões de política. Não true

Utilização

Notas de utilização

Só podes adicionar parâmetros de sequência de consulta usando a política. Não podes adicionar parâmetros extra do caminho do template na URL reescrita.

Examples

Exemplo 1: Reescrita básica de URL

No exemplo seguinte, a URL pública é reescrita para corresponder ao formato do URL do serviço de backend, e os parâmetros de consulta são incluídos com base noutra lógica.

  • URL pública - http://api.example.com/storenumber/ordernumber

  • URL do pedido - 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>

Exemplo 2: Copiar parâmetros não correspondidos

No exemplo seguinte, a URL pública é reescrita para corresponder ao formato do URL do serviço de backend, e a política copia quaisquer parâmetros de consulta não correspondidos para a nova 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 -->

Exemplo 3: Não copie parâmetros não correspondidos

No exemplo seguinte, a URL pública é reescrita para corresponder ao formato do URL do serviço backend, e a política elimina quaisquer parâmetros de consulta não correspondidos.

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

Exemplo 4: Usar expressão de política no modelo

No exemplo seguinte, a política utiliza expressões no template para construir o pedido para o backend.

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

Para obter mais informações sobre como trabalhar com políticas, consulte: