Définir l’en-tête

S’APPLIQUE À : Tous les niveaux de Gestion des API

La stratégie set-header affecte une valeur à un en-tête de réponse HTTP et/ou de demande existant ou bien ajoute un nouvel en-tête de réponse et/ou de demande.

Utilisez la stratégie pour insérer une liste d’en-têtes HTTP dans un message HTTP. Lorsqu'elle est placée dans un pipeline entrant, cette stratégie définit les en-têtes HTTP pour la demande transmise au service cible. Lorsqu’elle est placée dans un pipeline outbound, cette stratégie définit les en-têtes HTTP pour la réponse envoyée au client de la passerelle.

Notes

Définissez les éléments enfants et de stratégie dans l’ordre fourni dans l’instruction de stratégie. Pour vous aider à configurer cette stratégie, le portail fournit un éditeur guidé basé sur des formulaires. En savoir plus sur comment définir ou modifier des stratégies du service Gestion des API.

Instruction de la stratégie

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

Attributs

Nom Description Obligatoire Default
exists-action Spécifie l’action à entreprendre lorsque l’en-tête est déjà spécifié. Cet attribut doit avoir une des valeurs suivantes.

- override : remplace la valeur de l’en-tête actuel.
- skip : ne remplace pas la valeur de l’en-tête actuel.
- append : ajoute la valeur à celle de l’en-tête actuel.
- delete : supprime l’en-tête de la demande.

S’il a la valeur override, l’inscription de plusieurs entrées portant le même nom fait que l’en-tête est défini selon toutes les entrées (qui figurent plusieurs fois) ; seules les valeurs listées seront définies dans le résultat.

Les expressions de stratégie sont autorisées.
Non override
name Spécifie le nom de l'en-tête à définir. Les expressions de stratégie sont autorisées. Oui N/A

Éléments

Nom Description Obligatoire
value Spécifie la valeur de l'en-tête à définir. Les expressions de stratégie sont autorisées. Si plusieurs en-têtes portent le même nom, ajoutez d’autres éléments value. Non

Usage

Notes d’utilisation

Les valeurs multiples d’un en-tête sont concaténées pour former une chaîne CSV, par exemple :

headerName: value1,value2,value3

Parmi les exceptions figurent les en-têtes normalisés dont les valeurs :

  • peuvent contenir des virgules (User-Agent, WWW-Authenticate, Proxy-Authenticate)
  • peuvent contenir une date (Cookie, Set-Cookie, Warning),
  • contiennent une date (Date, Expires, If-Modified-Since, If-Unmodified-Since, Last-Modified, Retry-After).

Dans ces cas d’exception, les valeurs d’en-tête multiples ne sont pas concaténées en une seule chaîne et sont transmises comme en-têtes distincts, par exemple :

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

Les restrictions suivantes s’appliquent :

  • La suppression de l’en-tête Server n’est pas prise en charge.
  • Les en-têtes : Connection, ContentLength, KeepAlive, TransferEncoding ne peuvent pas être modifiés ni supprimés.

Exemples

Ajouter un en-tête, remplacer l’existant

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

Supprimer l’en-tête

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

Transférer des informations de contexte au service principal

Cet exemple montre comment appliquer la stratégie au niveau de l’API pour fournir des informations de contexte au service principal.

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

Pour plus d’informations, consultez les pages Expressions de stratégie et Variable de contexte.

Pour plus d’informations sur l’utilisation des stratégies, consultez :