websocket-upgrade

Utilice la política websocket-upgrade para procesar solicitudes y respuestas de API a través de una conexión WebSocket .

Soporte de pasarela

Tabla 1. Tabla que muestra qué pasarelas soportan esta política y la versión de política correspondiente
Pasarela Versión de política
DataPower® API Gateway 2.0.0

En este tema se describe cómo configurar la política en el origen de OpenAPI ; para obtener detalles sobre cómo configurar la política en la interfaz de usuario de ensamblaje, consulte Actualización de Websocket.

La política websocket-upgrade tiene el formato siguiente:
- 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
        .
        .
        .

Propiedades

Tabla 2. websocket-upgrade Propiedades de política
Propiedad Obligatorio Descripción Tipo de datos
version El número de versión de la política. serie
title Nee El título de la política. serie
description Nee Una descripción de la política. serie
target-url Especifique el URL que debe invocarse. serie
tls-profile Nee Especifica un perfil TLS que se va a utilizar para la transmisión segura de datos. serie
timeout Nee El tiempo durante el que se va a esperar una respuesta del punto final (en segundos).

El valor predeterminado es 60.

entero
follow-redirects Nee Especifica el comportamiento si el servidor back-end devuelve el código de estado HTTP 301 Moved Permanently . Si esta propiedad se establece en true, la política invoke sigue la redirección de URL realizando una llamada al URL especificado en la cabecera Location de la respuesta. Si esta propiedad se establece en false, invoke guarda el código de estado 301 y se considera que la llamada de API se ha completado.
Nota: La propiedad follow-redirect sólo está soportada por DataPower API Gateway. Si utiliza DataPower Gateway (v5 compatible), invoke siempre sigue la redirección URL ; la política proxy (no compatible con DataPower API Gateway ) guarda el código de estado 301 y completa la llamada a la API sin seguir la redirección URL.
booleano
username Nee El nombre de usuario que se va a utilizar para la autenticación básica HTTP. serie
password Nee La contraseña que se va a utilizar para la autenticación básica HTTP. serie
inject-proxy-headers Nee Cuando está establecida en true, la política invoke inyecta las cabeceras X-Forwarded-For, X-Forwarded-To, X-Forwarded-Host y X-Forwarded-Proto en la solicitud que se envía a target-url.

El valor predeterminado es false.

booleano
decode-request-params Nee Si se establece en true, cualquier parámetro de solicitud al que haga referencia una definición de variable en el target-url de la política invoke se decodifica por URL.

El valor predeterminado es false.

booleano
encode-plus-char Nee Si se establece en true, todos los caracteres "+" de los valores de parámetros de consulta del target-url se codifican en %2F.

El valor predeterminado es false.

booleano
header-control:
  type
  values
Nee Especifica las cabeceras message.headers que desea copiar en el URL de destino.

Si la propiedad type se establece en blocklist, la propiedad values lista las cabeceras que no deben copiarse. Si la propiedad values está vacía, se copian todas las cabeceras.

Si la propiedad type se establece en allowlist, la propiedad values lista las cabeceras que deben copiarse.

Los elementos que se listan en la propiedad values están en formato de expresión regular. Los valores no distinguen entre mayúsculas y minúsculas. El valor predeterminado de la propiedad header-control es
header-control:
  type: blocklist
  values: []

Consulte ejemplos de control de cabecera

objeto
parameter-control:
  type
  values
Nee Especifica los parámetros de la solicitud entrante que se desea copiar en el URL de destino.

Si la propiedad type se establece en blocklist, la propiedad values lista los parámetros que no deben copiarse.

Si la propiedad type se establece en allowlist, la propiedad values lista los parámetros que deben copiarse. Si la propiedad values está vacía, no se copian parámetros.

Los elementos que se listan en la propiedad values están en formato de expresión regular. Los valores no distinguen entre mayúsculas y minúsculas. El valor predeterminado de la propiedad parameter-control es
parameter-control:
  type: allowlist
  values: []

Consulte ejemplos de control de parámetros

objeto
request-assembly:
  execute
     .
     .
     .
    policy assembly
     .
     .
     .
Nee El ensamblaje del proceso de solicitud. Para obtener detalles sobre la configuración de un ensamblaje en la sección execute , consulte execute. objeto
response-assembly:
  execute
     .
     .
     .
    policy assembly
     .
     .
     .
Nee El ensamblaje del proceso de respuesta. Para obtener detalles sobre la configuración de un ensamblaje en la sección execute , consulte execute. objeto

Ejemplo

- 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

Ejemplos de header-control

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

Ejemplos de parameter-control

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