Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A: todos los niveles de API Management
La rewrite-uri política convierte una URL de solicitud de su formulario público al formulario esperado por el servicio web.
Utiliza esta política cuando necesites transformar una URL amigable para humanos o para el navegador en el formato de URL que espera el servicio web. Aplica esta política solo al exponer un formato alternativo de URL, como URLs limpias, URLs RESTful, URLs fáciles de usar o URLs optimizadas para SEO que sean puramente estructurales y no contengan una cadena de consulta, sino que contengan solo la ruta del recurso (después del esquema y la autoridad). A menudo haces este cambio por motivos estéticos, de usabilidad o de optimización para motores de búsqueda (SEO).
Nota
Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.
Instrucción de la directiva
<rewrite-uri template="uri template" copy-unmatched-params="true | false" />
Atributos
| Asignar nombre | Descripción | Necesario | Valor predeterminado |
|---|---|---|---|
| plantilla | La dirección URL del servicio web real con cualquier parámetro de cadena de consulta. Se permiten expresiones de directiva. Cuando se usan expresiones, todo el valor debe ser una expresión. | Sí | N/D |
| copy-unmatched-params | Especifica si los parámetros de consulta en la solicitud entrante que no están presentes en la plantilla original de URL se añaden a la URL definida por la plantilla de reescritura. Se permiten expresiones de directiva. | No | true |
Uso
- Secciones de la directiva: inbound (entrada)
- Ámbitos de la directiva: global, área de trabajo, producto, API, operación
- Puertas de enlace: clásica, v2, consumo, autohospedada y área de trabajo
Notas de uso
Solo puedes añadir parámetros de cadena de consulta usando la política. No puedes añadir parámetros adicionales de ruta de plantilla en la URL reescrita.
Examples
Ejemplo 1: Reescritura básica de URL
En el siguiente ejemplo, la URL pública se reescribe para coincidir con el formato de la URL del servicio backend, y se incluyen parámetros de consulta basándose en otra lógica.
URL pública:
http://api.example.com/storenumber/ordernumberURL de solicitud:
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>
Ejemplo 2: Copiar parámetros no emparejados
En el siguiente ejemplo, la URL pública se reescribe para coincidir con el formato de URL del servicio de backend, y la política copia cualquier parámetro de consulta no coincidido a la nueva 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 -->
Ejemplo 3: No copies parámetros no emparejados
En el siguiente ejemplo, la URL pública se reescribe para coincidir con el formato de URL del servicio de backend, y la política elimina cualquier parámetro de consulta no coincidido.
<!-- 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 -->
Ejemplo 4: Usar la expresión de política en la plantilla
En el siguiente ejemplo, la política utiliza expresiones en la plantilla para construir la petición al backend.
<policies>
<inbound>
<base />
<set-variable name="apiVersion" value="/v3" />
<rewrite-uri template="@("/api" + context.Variables["apiVersion"] + context.Request.Url.Path)" />
</inbound>
</policies>
Directivas relacionadas
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Repositorio de área de juegos de directivas
- Kit de herramientas de directivas de Azure API Management
- Obtener ayuda de Copilot para crear, explicar y solucionar problemas de directivas