Imposta intestazione

SI APPLICA A: Tutti i livelli di Gestione API

Il criterio set-header assegna un valore a un'intestazione di risposta HTTP e/o di richiesta esistente oppure aggiunge una nuova intestazione di risposta e/o di richiesta.

Usare i criteri per inserire un elenco di intestazioni HTTP in un messaggio HTTP. Se inserito in una pipeline in entrata, questo criterio imposta le intestazioni HTTP per la richiesta passata al servizio di destinazione. Se inserito in una pipeline in uscita, questo criterio imposta le intestazioni HTTP per la risposta inviata al client del gateway.

Nota

Impostare gli elementi e gli elementi figlio del criterio nell'ordine specificato nell'istruzione del criterio. Per configurare questo criterio, il portale fornisce un editor guidato basato su moduli. Altre informazioni su come impostare o modificare i criteri di API Management.

Istruzione del criterio

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

Attributi

Nome Descrizione Richiesto Valore predefinito
exists-action Specifica l'azione da eseguire quando l'intestazione è già specificata. Questo attributo deve avere uno dei valori seguenti.

- override : sostituisce il valore dell'intestazione esistente.
- skip : non sostituisce il valore dell'intestazione esistente.
- append : aggiunge il valore al valore dell'intestazione esistente.
- delete : rimuove l'intestazione dalla richiesta.

Se è impostato su override, l'integrazione di più voci con lo stesso nome avrà come risultato l'impostazione dell'intestazione in base a tutte le voci, che saranno elencate più volte. Nel risultato saranno impostati solo i valori elencati.

Le espressioni di criteri sono consentite.
No override
name Specifica il nome dell'intestazione da impostare. Le espressioni di criteri sono consentite. N/D

Elementi

Nome Descrizione Richiesto
value Specifica il valore dell'intestazione da impostare. Le espressioni di criteri sono consentite. Se occorrono più intestazioni con lo stesso nome, aggiungere altri elementi value. No

Utilizzo

Note sull'utilizzo

Più valori di intestazione vengono concatenati a una stringa CSV, ad esempio:

headerName: value1,value2,value3

Le eccezioni includono le intestazioni standard, i cui valori:

  • Possono contenere virgole (User-Agent, WWW-Authenticate, Proxy-Authenticate)
  • Possono contenere date (Cookie, Set-Cookie, Warning),
  • Contengono date (Date, Expires, If-Modified-Since, If-Unmodified-Since, Last-Modified, Retry-After).

Nel caso di queste eccezioni, più valori di intestazione non verranno concatenati in un'unica stringa e verranno passati come intestazioni distinte, ad esempio:

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

Si applicano le limitazioni seguenti:

  • La rimozione dell'intestazione Server non è supportata.
  • Le intestazioni: Connection, ContentLength, KeepAlive, TransferEncoding non possono essere modificate o eliminate.

Esempi

Aggiungere un'intestazione, eseguire l'override esistente

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

Rimuovi intestazione

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

Inoltro di informazioni di contesto al servizio back-end

Questo esempio illustra come applicare criteri a livello di API per fornire informazioni di contesto al servizio 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>

Per altre informazioni, vedere Espressioni di criteri e Variabile di contesto.

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: