Compartilhar via


Regravar URL

APLICA-SE A: todas as camadas do Gerenciamento de API

A rewrite-uri política converte uma URL de solicitação de seu formulário público para a forma esperada pelo serviço web.

Use essa política quando precisar transformar uma URL amigável para humanos ou navegador no formato de URL esperado pelo serviço web. Aplique essa política apenas ao expor um formato alternativo de URL, como URLs limpas, URLs RESTful, URLs amigáveis para o usuário ou URLs amigáveis para SEO que sejam puramente estruturais e não contenham uma string de consulta, mas contenham apenas o caminho do recurso (após o esquema e a autoridade). Você costuma fazer essa mudança por motivos estéticos, de usabilidade ou otimização para mecanismos de busca (SEO).

Observação

Defina os elementos da política e os elementos filho na ordem fornecida na declaração da política. Saiba mais sobre como definir e editar as 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 Obrigatório Padrão
modelo A URL real do serviço Web com quaisquer parâmetros de cadeia de consulta. Expressões de política são permitidas. Quando expressões são utilizadas, o valor inteiro deve ser uma expressão. Sim N/D
copy-unmatched-params Especifica se parâmetros de consulta na requisição recebida que não estão presentes no template original de URL são adicionados à URL definida pelo template de reescrita. Expressões de política são permitidas. Não true

Uso

Observações de uso

Você só pode adicionar parâmetros de string de consulta usando a política. Você não pode adicionar parâmetros extras do caminho do template na URL reescrita.

Exemplos

Exemplo 1: Reescrita básica de URL

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

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

  • URL de Solicitação – 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 a seguir, a URL pública é reescrita para corresponder ao formato da URL do serviço 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 combinados

No exemplo a seguir, a URL pública é reescrita para corresponder ao formato da 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: Use a expressão de política no template

No exemplo a seguir, a política usa expressões no template para construir a requisição 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: