websocket-upgrade

Utilizza la politica websocket-upgrade per elaborare le risposte e le richieste API tramite una connessione WebSocket .

Supporto gateway

Tabella 1. Tabella che mostra quali gateway supportano questa politica e la versione della politica corrispondente
Gateway Versione politica
DataPower® API Gateway 2.0.0

Questo argomento descrive come configurare il criterio nella OpenAPI fonte; per dettagli su come configurare il criterio nell'interfaccia utente dell'assembly, vedere Aggiornamento Websocket.

La politica websocket-upgrade ha il formato seguente:
- websocket-upgrade:
  version: version
  title: title
  description: description
  target-url: URL_of_target_API
  tls-profile: TLS_profile_to_be_used
  timeout: timeout_value_in_seconds
  follow-redirects: redirect_behavior_on_301_error
  username: username_if_authentication_required
  password: password_if_authentication_required
  inject-proxy-headers: are_proxy_headers_sent_to_target_url
  decode-request-params: are_request_parameters_decoded
  encode-plus-char: are_plus_characters_encoded
  header-control:
        .
        .
        .
    headers_to_copy_to_target_url
        .
        .
        .
  parameter-control:
        .
        .
        .
    parameters_to_copy_to_target_url
        .
        .
        .

Proprietà

Tabella 2. websocket-upgrade Proprietà della politica
Proprietà Obbligatorio Descrizione Tipo di dati
version Il numero di versione della politica. stringa
title No Il titolo della politica. stringa
description No Una descrizione della politica. stringa
target-url Specificare l' URL da richiamare. stringa
tls-profile No Specifica un profilo TLS da utilizzare per la trasmissione sicura dei dati. stringa
timeout No Il tempo di attesa prima di una risposta dall'endpoint (in secondi).

Il valore predefinito è 60.

intero
follow-redirects No Specifica il comportamento se il server back-end restituisce il codice di stato HTTP 301 Moved Permanently. Se questa proprietà è impostata su true, il criterio invoke segue il reindirizzamento dell' URL effettuando un'ulteriore chiamata all' URL specificato nell'intestazione Location nella risposta. Se questa proprietà è impostata su false, invoke salva il codice di stato 301 e la chiamata API viene considerata completa.
Nota: la proprietà follow-redirect è supportata solo da DataPower API Gateway. Se si utilizza DataPower Gateway (v5 compatible), invoke segue sempre il reindirizzamento dell' URL ; il criterio proxy (non supportato da DataPower API Gateway ) salva il codice di stato 301 e completa la chiamata API senza seguire il reindirizzamento URL.
booleano
username No Il nome utente da utilizzare per l'autenticazione di base HTTP. stringa
password No La password da utilizzare per l'autenticazione di base HTTP. stringa
inject-proxy-headers No Quando è impostata su true, la politica invoke inserisce le intestazioni X-Forwarded-For, X-Forwarded-To, X-Forwarded-Hoste X-Forwarded-Proto nella richiesta inviata altarget-url.

Il valore predefinito è false.

booleano
decode-request-params No Se impostato su true, tutti i parametri della richiesta che sono referenziati da una definizione di variabile in target-url del criterio di invocazione sono URL.

Il valore predefinito è false.

booleano
encode-plus-char No Quando è impostato su true, tutti i caratteri "+" nei valori del parametro di query di target-url sono codificati in %2F.

Il valore predefinito è false.

booleano
header-control:
  type
  values
No Specifica le intestazioni in message.headers che si desidera copiare nell' URL di destinazione.

Se la proprietà type è impostata su blocklist, la proprietà values elenca le intestazioni che non si desidera copiare. Se la proprietà values è vuota, vengono copiate tutte le intestazioni.

Se la proprietà type è impostata su allowlist, la proprietà values elenca le intestazioni che si desidera copiare.

Gli elementi elencati nella proprietà values sono in formato di espressione regolare. I valori non sono sensibili al maiuscolo / minuscolo. Il valore predefinito della proprietà header-control è
header-control:
  type: blocklist
  values: []

Vedere esempi di controllo intestazione

oggetto
parameter-control:
  type
  values
No Specifica i parametri della richiesta in arrivo che si desidera copiare nell' URL di destinazione.

Se la proprietà type è impostata su blocklist, la proprietà values elenca i parametri che non si desidera copiare.

Se la proprietà type è impostata su allowlist, la proprietà values elenca i parametri che si desidera copiare. Se la proprietà values è vuota, non viene copiato alcun parametro.

Gli elementi elencati nella proprietà values sono in formato di espressione regolare. I valori non sono sensibili al maiuscolo / minuscolo. Il valore predefinito della proprietà parameter-control è
parameter-control:
  type: allowlist
  values: []

Vedere esempi di controllo parametri

oggetto
request-assembly:
  execute
     .
     .
     .
    policy assembly
     .
     .
     .
No L'assembly di elaborazione della richiesta. Per dettagli sulla configurazione di un assembly nella sezione execute , consultare execute. oggetto
response-assembly:
  execute
     .
     .
     .
    policy assembly
     .
     .
     .
No L'assembly di elaborazione della risposta. Per dettagli sulla configurazione di un assembly nella sezione execute , consultare execute. oggetto

Esempio

- websocket-upgrade:
  version: 2.0.0
  title: websocket-upgrade
  timeout: 60
  target-url: 'https://my.websocket.upgrade.com'
  secure-gateway: false
  follow-redirects: true
  inject-proxy-headers: true
  decode-request-params: false
  encode-plus-char: true
  response-assembly:
    execute:
      - parse:
          version: 2.0.0
          title: parse
          parse-settings-reference:
            default: apic-default-parsesettings
          description: Parse the response from the backend server

header-control esempi

# copy all headers to the target URL

- invoke:
    target-url: http://myhost/mypath
    header-control:
      type: blocklist
      values: []
# copy all headers except X-Client-ID and Content-Type

- invoke:
    target-url: http://myhost/mypath
    header-control:
      type: allowlist
      values:
        - ^X-Client-ID$
        - ^Content-Type$
# copy no headers

- invoke:
    target-url: http://myhost/mypath
    header-control:
      type: allowlist
      values: []
# copy only the Content-Type header

- invoke:
    target-url: http://myhost/mypath
    header-control:
      type: allowlist
      values:
        - ^Content-Type$

parameter-control esempi

# copy no request parameters to the target URL

- invoke:
    target-url: http://myhost/path?storeid=3
    parameter-control:
      type: allowlist
      values: []
# append the petid parameter to the target URL
# if the incoming request is http://apigw/org/sandbox/petstore/base?petid=100&display=detailed, 
# the target URL at runtime will be http://myhost/mypath?storeid=3&petid=100

- invoke:
    target-url: http://myhost/path?storeid=3
    parameter-control:
      type: allowlist
      values:
        - ^petid$