DataPower API Gateway

validate - DataPower API Gateway

Utilice la política validate para validar la carga útil en un flujo de ensamblaje con respecto a un esquema.

Soporte de pasarela

Nota: Esta página describe la implementación de la política validate en DataPower® API Gateway. Si utiliza DataPower Gateway (v5 compatible), consulte validate- DataPower Gateway (compatible conv5 ).

Para obtener información sobre los distintos tipos de pasarela, consulte Tipos de pasarela deAPI Connect.

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

2.1.0 (DataPower API Gateway Versión 10.0.1.0 o posterior)

2.2.0 (DataPower API Gateway Versión 10.0.2.0 o posterior)

2.3.0 (DataPower API Gateway Versión 10.0.2.0 o posterior)

2.4.0 (DataPower API Gateway Versión 10.0.4.0 o posterior)

2.5.0 (DataPower API Gateway Versión 10.5.0.0 o posterior)

2.6.0 (DataPower API Gateway Versión 10.5.0.2 o posterior

2.7.0 (DataPower API Gateway Versión 10.5.0.3 o posterior

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 Validar- DataPower API Gateway.

Acerca de

La política validate tiene el formato siguiente:
- validate:
    version: version
    title: title
    description: description
    validate-against: validation_mechanism
         .
         .
         .
       properties_specific_to_the specified_validation_mechanism
         .
         .
         .

Aplique esta política añadiendo una extensión assembly con un campo execute al archivo de definición OpenAPI .

Nota: Con DataPower API Gateway, la entrada de la política validate deben ser datos analizados. Una forma de generar datos analizados es utilizar una política parse antes que una política validate en el flujo de ensamblaje, que proporciona un control explícito de la acción de análisis.

Propiedades

La tabla siguiente describe las propiedades de política.
Tabla 2. validate 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 Título de la política. serie
description Nee Una descripción de la política. serie
input Nee Identifica una variable en el contexto de API. El contenido del campo body de la variable, que se representa mediante variable_name.body, son los datos de entrada que se deben validar. De forma predeterminada, el nombre de variable es message. serie
output Nee Especifica el nombre de una variable en el contexto de la API.
  • Si se pasa la validación, el campo de cuerpo de la variable de salida, que se representa mediante variable_name.body, almacena la salida de la acción de validación de ensamblaje.
  • Si el esquema que se ha de validar es un esquema JSON, la validación también añade cualquier valor predeterminado que no se encuentre en la carga útil.
  • Si falla la validación, no se almacena ninguna salida.
  • Si no se especifica una variable de salida, los resultados de la acción de validación del ensamblaje no se guardan.
serie
validate-against Especifica el esquema que se va a utilizar para validar la carga útil.
Valores válidos:
  • definition: un esquema definido anteriormente se utilizará para validar la carga útil devuelta de otras tareas o acciones de invocación del flujo de ensamblaje.

    Además, proporcione una propiedad definition para especificar el esquema necesario.

  • url: el esquema se identifica mediante una ubicación URL.
    Además, proporcione las propiedades siguientes:
    • Campo json-schema: el URL del esquema JSON que se va a utilizar para validar una carga útil de JSON.
    • xml-validation-mode: especifique uno de los valores siguientes para definir cómo se valida una carga útil de XML:
      • xsd: utilizar un esquema XML y además proporcionar una propiedad xml-schema que especifica el URL del esquema XML.
      • wsdl: utilizar un esquema WSDL y además proporcionar una propiedad xml-schema que especifica el URL el esquema WSDL que se va a utilizar para validar una carga útil de SOAP..
      • soap-body: validar el cuerpo de un mensaje SOAP sólo con respecto al esquema XML.
      Nota: Las siguientes limitaciones se aplican a los esquemas utilizados para la validación de JSON, que incluyen esquemas JSON y documentos OpenAPI que se utilizan como esquemas para la validación. La superación de estos límites puede influir en el rendimiento de la compilación y no está soportada.
      • Máximo de 6.500 líneas. Cada clave y cada elemento de una matriz se contabilizan como una línea.
      • Profundidad de recurrencia máxima de 250.
      • Máximo de 3.000 elementos en listas enum.
  • wsdl: (utilizar sólo con una API basada en servicio SOAP) utilizar el esquema XML en el archivo WSDL asociado a la operación de API o la vía de acceso de API.
  • body-param: validar la entrada de solicitud contra la definición de esquema especificada en la propiedad schema del parámetro de solicitud de esta operación.
  • response-param: validar la respuesta que se va a devolver a la aplicación de cliente contra la definición de esquema especificada en la propiedad schema del parámetro de respuesta de esta operación.
  • graphql: (sólo se utiliza con una API de proxy de GraphQL) validar la carga útil contra el esquema GraphQL que se ha importado en la API de proxy de GraphQL. Además, la consulta o respuesta de GraphQL, en función de la entrada, se analiza con el esquema GraphQL para calcular el coste, y el resultado se coloca en el contexto de la API.

    Para obtener más información sobre las API de proxy de GraphQL , consulte Creación de una API de proxy de GraphQL y las variables de contexto de GraphQL.

    .
serie
xslt-version Nee La versión del procesador XSLT. El valor predeterminado es XSLT10. serie
strict Nee Indica si se debe habilitar la comprobación de errores XSLT estricta. Las operaciones no estrictas intentan recuperarse de ciertos errores, como uso de variables no declaradas, llamadas a plantillas no declaradas, etc. De forma predeterminada, la comprobación de errores XSLT estricta está habilitada. booleano
profile Nee Indica si se debe habilitar la creación de perfiles de hoja de estilo. Esta opción no debe utilizarse en entornos de producción. De forma predeterminada, el perfilado de hojas de estilo está inhabilitado. booleano
debug Nee Indica si se debe ejecutar la hoja de estilo, el script XQuery y el script JSONiq en modalidad de depuración. Cuando una hoja de estilo, un script XQuery o un script JSONiq se ejecuta en modalidad de depuración, genera una página web personalizada en lugar de mostrar su salida normal. La página web muestra detalles exactos sobre lo que ha ocurrido durante la ejecución, incluidos los valores de las variables y de dónde proceden determinadas partes de la salida. Esta opción no debe utilizarse en entornos de producción. De forma predeterminada, la modalidad de depuración está inhabilitada. booleano
stream Nee Si la hoja de estilo debe ejecutarse en modalidad continua. La transformación del documento comienza antes de que se haya analizado completamente la entrada. No todas las hojas de estilo se pueden transmitir. Si la hoja de estilo no se puede transmitir, se genera un error y no se procesa la entrada. De forma predeterminada, la modalidad de transmisión está inhabilitada. booleano
try-stream Nee Indica si se debe intentar ejecutar la hoja de estilo en modalidad continua. La transformación del documento comienza antes de que se haya analizado completamente la entrada. No todas las hojas de estilo se pueden transmitir. Si la hoja de estilo no se puede transmitir, se genera un aviso durante la compilación y la hoja de estilo se lee en toda la entrada como es habitual en tiempo de ejecución. De forma predeterminada, el intento de ejecutar la hoja de estilo en modalidad de transmisión está inhabilitado. booleano
minimum-escaping Nee Indica si se debe escapar la salida producida de la hoja de estilo durante el proceso. El escape mínimo resulta especialmente útil cuando se manejan juegos de caracteres distintos del inglés. De forma predeterminada, el escape mínimo está inhabilitado. booleano
stack-size Nee El número máximo de bytes que la pila puede utilizar al ejecutar una hoja de estilo u otro contenido compilado. Este valor se utiliza para bloquear la recurrencia infinita. El valor mínimo es 10 kilobytes o 10.240 bytes. El valor máximo es 100 megabytes o 104.857.600 bytes. El valor predeterminado es 1 megabyte o 1.048.576 bytes. entero
wsi-validation Nee El comportamiento de validación que se aplica a los archivos WSDL que se comprueban para la conformidad con la sección 5 de WS-I Basic Profile (versión 1.0, abril de 2004). El valor predeterminado es Avisar.
Ignorar
Inhabilita la comprobación de conformidad.
Avisos
Anota los avisos de violaciones.
Error
Impone conformidad. Falla si el archivo contiene alguna violación.
serie
wsdl-validate-body Nee El comportamiento de validación para soap:Body. El valor predeterminado es Estricto.
Estricto
Valida esta parte del mensaje respecto de la definición WSDL. Solo permite mensajes que contengan esta parte y que coincidan con la definición WSDL.
Laxo
Valida esta parte del mensaje respecto de la definición WSDL. Si el mensaje contiene esta parte y la definición WSDL no define esta parte, se permite el mensaje. Si el mensaje contiene esta parte y la definición WSDL define esta parte, solo se permite el mensaje cuando hay una coincidencia.
Omitir
Inhabilita la validación de esta parte del mensaje.
serie
wsdl-validate-headers Nee

El comportamiento de validación para soap:Header. El valor predeterminado es Lax.

Estricto
Valida esta parte del mensaje respecto de la definición WSDL. Solo permite mensajes que contengan esta parte y que coincidan con la definición WSDL.
Laxo
Valida esta parte del mensaje respecto de la definición WSDL. Si el mensaje contiene esta parte y la definición WSDL no define esta parte, se permite el mensaje. Si el mensaje contiene esta parte y la definición WSDL define esta parte, solo se permite el mensaje cuando hay una coincidencia.
Omitir
Inhabilita la validación de esta parte del mensaje.
serie
wsdl-validate-faults Nee Especifica el comportamiento de validación para el detalle de error. El valor predeterminado es Estricto.
Estricto
Valida esta parte del mensaje respecto de la definición WSDL. Solo permite mensajes que contengan esta parte y que coincidan con la definición WSDL.
Laxo
Valida esta parte del mensaje respecto de la definición WSDL. Si el mensaje contiene esta parte y la definición WSDL no define esta parte, se permite el mensaje. Si el mensaje contiene esta parte y la definición WSDL define esta parte, solo se permite el mensaje cuando hay una coincidencia.
Omitir
Inhabilita la validación de esta parte del mensaje.
serie
wsdl-wrapped-faults Nee Indica si se requiere compatibilidad con derivadores de estilo RPC. De forma predeterminada, no se requieren encapsuladores estilo RPC. booleano
allow-soap-enc-array Nee Indica si se debe permitir que el esquema acepte la mayoría de los usos de elementos con xsi:type='SOAP-ENC:Array' coherente con SOAP 1.1 Sección 5, incluso cuando estos atributos violan la especificación de esquema XML. Normalmente, el atributo xsi:type debe nombrar un tipo igual o derivado del tipo real del elemento. Para esquemas compilados con esta opción, xsi:type se acepta específicamente para el tipo complejo SOAP 1.1 Encoding 'Array' si el tipo de elemento se deriva de SOAP-ENC:Array. Lo contrario es el caso normal permitido. De forma predeterminada, los elementos con xsi:type='SOAP-ENC:Array' no se aceptan. booleano
validate-soap-enc-array Nee Indica si se debe realizar una validación de esquema adicional siguiendo las reglas de codificación en SOAP 1.1 Sección 5. Cuando está habilitado, los miembros de matrices SOAP se validan, se permiten atributos como @id y @href aunque el esquema no los permita, y se comprueban los valores @href para garantizar que tengan un elemento @id correspondiente. De forma predeterminada, no se realiza la validación adicional. booleano
wildcards-ignore-xsi-type Nee Indica si los elementos xs:any del esquema validan sólo los elementos hijo por nombre. La especificación de esquema XML requiere que, si un comodín coincide con un elemento pero dicho elemento no tiene una declaración de elemento, el elemento se valide en su lugar según un atributo xsi:type . Esta opción ignora estos atributos xsi:type . Debe utilizarse en casos como la validación de sobres SOAP donde un paso de validación adicional validará el contenido que coincida con el carácter comodín, posiblemente utilizando las reglas de codificación SOAP 1.1. De forma predeterminada, los atributos xsi:type no se ignoran. booleano
wsdl-strict-soap-version Nee Indica si se debe seguir estrictamente el enlace SOAP en el WSDL. Cuando esta opción está habilitada, solo los mensajes enlazados a SOAP 1.2 aparecen en sobres SOAP 1.2 y solo los mensajes enlazados a SOAP 1.1 aparecen en sobres SOAP 1.1. De forma predeterminada, el enlace SOAP estricto está inhabilitado. booleano
xacml-debug Nee Indica si se deben compilar las políticas XACML con información de depuración. Tenga en cuenta que los mensajes de depuración XACML también están controlados por el suceso de registro en la categoría XACML. Utilice el nivel de registro de depuración para ver los mensajes de depuración XACML completos. De forma predeterminada, las políticas XACML no se compilan con información de depuración. booleano
allow-xop-include Nee Especifica si el documento de esquema o WSDL acepta mensajes en los que el contenido binario codificado en base64 se ha optimizado según las especificaciones MTOM/XOP. La optimización binaria XOP sustituye los datos binarios base64-encoded por un elemento de referencia xop:Include que hace referencia a los datos binarios no codificados ubicados en un archivo adjunto. De forma predeterminada, los mensajes optimizados de MTOM/XOP están inhabilitados.
  • Cuando está inhabilitada, la validación del formato optimizado rechaza estos mensajes optimizados. El rechazo se produce porque el esquema especifica un tipo simple que acepta datos base64-encoded , como xs:base64Binary o xs:string, pero el mensaje contiene un elemento xop:Include en su lugar.
  • Cuando está habilitado, un elemento xop:Include puede aparecer opcionalmente en lugar de contenido para cualquier tipo simple de esquema XML que valide datos binarios base64-encoded . El propio elemento xop:Include se validará de acuerdo con el esquema incorporado en store:///schemas/xop.xsd.
booleano

También puede aplicar una política validate utilizando el editor de ensamblaje API Designer para añadir una política incorporada a la API. Para obtener más información, consulte Validar- DataPower API Gateway en la sección de políticas incorporadas.

Ejemplo 1

- validate:
    version: 2.0.0
    title: 'validate, response parameter schema'
    validate-against: response-param

Ejemplo 2

- validate:
    version: 2.0.0
    title: 'validate, predefined schema'
    validate-against: definition
    definition: '#/definitions/RouteOutput'

Ejemplo 3

- validate:
    version: 2.0.0
    title: 'validate, JSON and XML schema URLs'
    validate-against: url
    json-schema: 'https://my.json.schema'
    xml-validation-mode: xsd
    xml-schema: 'https://my.xml.schema'