Set header

SE APLICA A: todos los niveles de API Management

La directiva set-header asigna un valor a un encabezado de respuesta o de solicitud HTTP existente o agrega un nuevo encabezado de este tipo.

Use la directiva para insertar una lista de encabezados HTTP en un mensaje HTTP. Cuando se coloca en un proceso entrante, esta directiva establece los encabezados HTTP para la solicitud que se pasa al servicio de destino. Cuando se coloca en una canalización saliente, esta directiva establece los encabezados HTTP para la respuesta que se está enviando al cliente de la puerta de enlace.

Nota

Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Para que pueda configurar esta directiva, el portal proporciona un editor guiado basado en formularios. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.

Instrucción de la directiva

<set-header name="header name" exists-action="override | skip | append | delete">
    <value>value</value> <!--for multiple headers with the same name add additional value elements-->
</set-header>

Atributos

Asignar nombre Descripción Necesario Valor predeterminado
exists-action Especifica la acción que se debe realizar cuando ya se ha especificado un encabezado. Este atributo debe tener uno de los siguientes valores:

- override: sustituye el valor del encabezado existente.
- skip: no sustituye el valor del encabezado existente.
- append: anexa el valor al encabezado existente.
- delete: quita el encabezado de la solicitud.

Cuando se establece en override, si se inscriben varias entradas con el mismo nombre, se establece el encabezado de acuerdo con todas ellas (que se inscribirán varias veces); solo los valores mostrados se establecerán en el resultado.

Se permiten expresiones de directiva.
No override
name Especifica el nombre del encabezado que se va a establecer. Se permiten expresiones de directiva. N/D

Elementos

Nombre Descripción Obligatorio
value Especifica el valor del encabezado que se va a establecer. Se permiten expresiones de directiva. Para varios encabezados con el mismo nombre, agregue más elementos value. No

Uso

Notas de uso

Varios valores de un encabezado se concatenan en una cadena CSV, por ejemplo:

headerName: value1,value2,value3

Las excepciones incluyen encabezados estandarizados, cuyos valores:

  • pueden contener comas (User-Agent, WWW-Authenticate, Proxy-Authenticate)
  • pueden contener fechas (Cookie, Set-Cookie, Warning),
  • contienen fechas (Date, Expires, If-Modified-Since, If-Unmodified-Since, Last-Modified, Retry-After).

En el caso de esas excepciones, varios valores de encabezado no se concatenarán en una cadena y se pasarán como encabezados independientes, por ejemplo:

User-Agent: value1
User-Agent: value2
User-Agent: value3

Se presentan las siguientes limitaciones:

  • No se admite la eliminación del encabezado Server.
  • Encabezados: Connection, ContentLength, KeepAlive, TransferEncoding no se pueden modificar ni eliminar.

Ejemplos

Agregar encabezado, invalidar existente

<set-header name="some header name" exists-action="override">
    <value>20</value>
</set-header>

Quitar encabezado

 <set-header name="some header name" exists-action="delete" />

Reenvío de información contextual al servicio back-end

En este ejemplo se muestra cómo aplicar directivas en el nivel de API para proporcionar información contextual al servicio back-end.

<!-- Copy this snippet into the inbound element to forward some context information, user id and the region the gateway is hosted in, to the backend service for logging or evaluation -->
<set-header name="x-request-context-data" exists-action="override">
  <value>@(context.User.Id)</value>
  <value>@(context.Deployment.Region)</value>
</set-header>

Para obtener más información, consulte Policy expressions (Expresiones de política) y Context variable (Variable de contexto).

Para más información sobre el trabajo con directivas, vea: