Validar la especificación API

Esta política valida la solicitud entrante según las distintas especificaciones de la API, como el esquema, los parámetros de consulta, los parámetros de ruta, los tipos de contenido y las cabeceras HTTP referenciadas en sus formatos correspondientes, como se indica a continuación:

  • El esquema está disponible como parte de la definición de la API. El esquema para las API SOAP se importan a través de WSDL y para las API REST puede ser a través de swagger, RAML o puede ser subido por el usuario.
  • Los parámetros de consulta, los parámetros de ruta y los tipos de contenido están disponibles como parte de la definición de la API.
  • Las cabeceras HTTP se especifican en la página de política Validar especificación API.

La solicitud enviada a la API por una aplicación debe ajustarse a la estructura o formato esperado por la API. Las solicitudes entrantes se validan con respecto a las especificaciones de la API en esta política para ajustarse a la estructura o formato esperado por la API.

Varias especificaciones API validadas son:

  • Esquema:

    Las solicitudes entrantes se validan con respecto al esquema proporcionado en la definición de la API. El esquema define los elementos y atributos y especifica los tipos de datos de estos elementos para garantizar que sólo los datos apropiados se permiten a través de la API.

    Para una API REST, el esquema puede añadirse en línea o cargarse en la sección Información técnica de la página Detalles de la API. La validación depende de la cabecera Content-type de la solicitud o de la cabecera Accept de la respuesta y se ejecutaría la validación del esquema correspondiente.

    El tipo de esquema para la validación se selecciona en función de:

    • El encabezado Content-Type cuando la política se añade en la etapa de procesamiento de la solicitud.
    • El encabezado Accept cuando la política se añade en la etapa de procesamiento de la respuesta.

    Si falta la cabecera o la carga útil, se omite la validación del esquema.

    La tabla enumera la correspondencia predeterminada entre el tipo de contenido/encabezado Accept y el tipo de validación del esquema.

    Tipo de contenido/Aceptar Tipo de validación del esquema
    aplicación/json aplicación/json/badgerfish Esquema JSON
    aplicación/xml texto/xml texto/html Esquema XML
    text/plain Esquema Regex

    Para una API SOAP, el WSDL y el esquema de referencia deben proporcionarse en formato zip. Se admite la validación del esquema JSON para las operaciones que se exponen como REST.

    Nota: Si no se encuentra la asignación de esquemas para un tipo de contenido de la solicitud en la API, el comportamiento es el siguiente:
    • Si la asignación de esquemas no está disponible en una API REST o una API transformada de SOAP a REST, se omite la validación.
    • Si application/json se asigna al esquema XML en la definición de la API, el contenido JSON de la solicitud se valida con el esquema XML para ofrecer compatibilidad con versiones anteriores de las API migradas desde la versión 10.1.
    • Si sólo existen mapeos de esquemas XML para alguno de los tipos de contenido, la carga útil se convierte en XML y se valida con todos los esquemas XML. Si la carga útil es válida para uno de los esquemas, la validación se realiza correctamente.
    • Si la carga útil no es convertible a XML, no se realiza la validación y se permite que la solicitud llegue a la API nativa.
  • Validación de esquemas para Open API: API Gateway actualmente solo admite la validación de esquemas OpenAPI 3.0.0.
  • Validación de esquemas para la API GraphQL

    Las cargas útiles de consulta o mutación entrantes se validan con el sistema de tipos del esquema GraphQL.

  • Parámetros de consulta

    Esto sólo es aplicable a una API REST. Las solicitudes entrantes se validan con los parámetros de consulta especificados en la definición de la API.

  • Parámetros de vía de acceso

    Esto sólo es aplicable a una API REST. Las solicitudes entrantes se validan con los parámetros de ruta especificados en la definición de la API.

  • Tipos de contenido

    Esto no es aplicable a una API de GraphQL. Las solicitudes entrantes se validan con respecto a los tipos de contenido especificados en la definición de la API.

    Nota: Cuando se selecciona la validación de Content-type para una API SOAP, la validación falla en el caso de escenarios SOAP a REST y muestra un error con código de estado 500 en lugar de 400 como se muestra en los otros escenarios.

    Cuando tenemos seleccionada la validación de tipo de contenido para la API SOAP, en los escenarios SOAP TO REST, esta validación no se produce, es decir, se muestra un error con código de estado 500 y no 400 como los otros escenarios.

  • HTTP Cabeceras.

    Esto no es aplicable a una API de GraphQL. Las solicitudes entrantes se validan con las cabeceras HTTP especificadas en esta política para ajustarse a las cabeceras HTTP esperadas por la API.

Las invocaciones en tiempo de ejecución que no superan la validación de la especificación se consideran violaciones de la política. Puede ver estos eventos de violación de políticas en el panel de control.

La tabla enumera las propiedades de especificación de API, que puede especificar para esta política, que se validarán:

Parámetro Descripción
Esquema Valida la carga útil de la respuesta contra el esquema apropiado (basado en el encabezado Content-type en la solicitud o el encabezado Accept en la respuesta). Proporcione las siguientes funciones adicionales para la validación de esquemas XML. Esto no es aplicable a una API de GraphQL.
  • Nombre de la función. Especifica el nombre de la función para el análisis sintáctico de XML al realizar la validación del esquema XML.

    Seleccione de la lista los nombres de las características que desee:

    • GENERAR_ANOTACIONES_SINTÉTICAS
    • COMPROBACIÓN_ID_IDREF
    • COMPROBACIÓN_DE_LAS_RESTRICCIONES_DE_IDENTIDAD
    • IGNORAR_TIPO_XSL
    • ESPACIO_NOMBRE_CRECIMIENTO
    • NORMALIZAR_DATA
    • ELEMENTO_RAIZ_DECL
    • TIPO_RAÍZ_DEF
    • SIGMA_AUMENTO_PSVI
    • ESQUEMA_DV_FACTORY
    • ELEMENTO_ESQUEMA_POR_DEFECTO
    • UBICACIÓN_DEL_ESQUEMA
    • ESQUEMA_NONS_LOCATION
    • VALIDADOR_ESQUEMA
    • TOLERAR_DUPLICADOS
    • COMPROBACIÓN_DE_ENTIDADES_ANALIZADAS
    • VALIDAR_ANOTACIONES
    • COMPROBACIÓN COMPLETA DEL ESQUEMA XML
    • VALIDACIÓN DE ESQUEMA XML

    Para obtener más información sobre las funciones de análisis XML, consulte http://xerces.apache.org/xerces2-j/features.html y, para obtener más información sobre las constantes exactas, consulte https://xerces.apache.org/xerces2-j/javadocs/xerces2/org/apache/xerces/parsers/XML11Configuration.html.

  • Valor de característica. Especifica si el valor de la característica es Verdadero o Falso.
Validación de esquemas para la API GraphQL. Las cargas útiles de consulta o mutación entrantes se validan con el sistema de tipos del esquema GraphQL.
Parámetros de consulta Esto sólo es aplicable a una API REST. Valida los parámetros de consulta de la solicitud entrante frente a los parámetros de consulta definidos en la Especificación de la API de esa solicitud. La configuración se proporciona en la página de detalles de la API.
Parámetros de vía de acceso Esto sólo es aplicable a una API REST. Valida los parámetros de ruta de la solicitud entrante comparándolos con los parámetros de ruta definidos en la Especificación de la API de esa solicitud. La configuración se proporciona en la página de detalles de la API.
Tipos de contenido Esto no es aplicable a una API de GraphQL. Valida los tipos de contenido de la respuesta entrante frente a los tipos de contenido definidos en la Especificación de la API de esa respuesta. La configuración se proporciona en la página de detalles de la API.
Cabeceras HTTP Esto no es aplicable a una API de GraphQL. Valida los parámetros de la cabecera HTTP de la respuesta entrante frente a las cabeceras HTTP definidas en la Especificación API de esa respuesta. La configuración se proporciona en la página de detalles de la API. Especifique la información siguiente:
  • Estado. Especifica el operador lógico que se utilizará para validar varias cabeceras HTTP en las respuestas entrantes de la API.

    Los valores disponibles son:

    • Y. webMethods API Gateway sólo acepta las respuestas que contienen todas las cabeceras HTTP configuradas.
    • O. Esta opción está seleccionada por defecto. webMethods API Gateway acepta respuestas que contengan al menos una cabecera HTTP configurada.
  • HTTP Llave de cabecera. Especifica una clave que debe pasarse a través de la cabecera HTTP de las solicitudes API entrantes.
  • Valor de cabecera. Opcional. Especifica el valor de clave correspondiente que podría pasarse a través de la cabecera HTTP de las solicitudes API entrantes. Como esta propiedad admite el marco de variables, puede hacer uso de las variables disponibles para especificar el valor de la cabecera. Para más información sobre las variables disponibles en webMethods API Gateway véase Marco de variables.

    Puede añadir más cabeceras HTTP pulsando el botón Añadir.