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
- Sections de la stratégie : inbound, outbound, backend, on-error
- Étendues de la stratégie : global, espace de travail, produit, API, opération
- Passerelles : classiques, v2, consommation, auto-hébergées, espace de travail
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.
Stratégies connexes
Contenu connexe
Pour plus d’informations sur l’utilisation des stratégies, consultez :
- Tutoriel : Transformer et protéger votre API
- Référence de stratégie pour obtenir la liste complète des instructions et des paramètres de stratégie
- Expressions de stratégie
- Définir ou modifier des stratégies
- Réutilisation de configurations de stratégie
- Référentiel d’extrait de stratégie
- Créer des stratégies à l’aide de Microsoft Copilot dans Azure