Hola, ¿cómo podemos ayudar?

Búsquedas recientes: Aprovisionamiento SCIM - Monitorear las sincronizaciones del sistema - LDAP - Programar la importación de datos de la DIINTERFACE - Corregir errores de importación

Solucionar problemas de las fuentes de datos REST

 

Prerrequisito

  • Acceso al menú Gestión de fuentes de datos > Fuente de datos > REST (DI001).

 

Introducción

Este artículo presenta sugerencias y soluciones para los problemas más comunes, en el caso de que encuentre algún impedimento mientras utiliza nuestras fuentes de datos REST.

Vea en las siguientes secciones los problemas que pueden presentarse al informar el cuerpo de la petición/respuesta o en la prueba de consumo, al igual que sus posibles soluciones:

 

Problemas al informar el cuerpo de la petición/respuesta

Durante las etapas Parámetros de entrada y Parámetros de salida de la fuente de datos REST, al insertar un ejemplo de cuerpo de la petición/respuesta, es posible que ocurra uno de los siguientes casos, haciendo imposible avanzar a la próxima etapa:

El array "Identificador del parámetro" informado en el ejemplo debe contener solo un ítem y este debe ser un objeto JSON

Este problema ocurre cuando el JSON que se está pasando al cuerpo de ejemplo contiene algún atributo que es del tipo array, pero este tiene más de un elemento y/o su tipo no es objeto

Dentro de la fuente de datos REST, son reconocidos solo arrays que contienen un objeto, en virtud de que el ejemplo informado será utilizado para el montaje de los atributos.

Ejemplo no válido:

{
  "request": [1, 2, 3, 4],
  "request2": [
    {
      "id": 0
    },
    {
      "id": 0
    }
  ]
}

Ejemplo válido:

{
  "request": [
    {
      "id": 0
    }
  ]
}

En el ejemplo no válido, ambos atributos (request y request2) no son válidos para el componente.

La fuente de datos utiliza los atributos solo de un objeto especificado para leer los atributos. De esta forma, solamente puede haber un objeto dentro de la lista.

Si su ejemplo de cuerpo de la petición/respuesta contiene más de un objeto, basta dejar solo uno de ellos dentro de la estructura de lista. En caso de que haya elementos que no sean objetos, estos no serán admitidos por la fuente de datos REST.

 

No se pudo identificar el tipo de parámetro "Identificador del parámetro". Por favor, introduzca un valor válido para que sea posible identificar el tipo de dato

Este problema ocurre cuando algún atributo del JSON del cuerpo de la petición/respuesta está con valor null

Como la fuente de datos utiliza el JSON informado para mapear los atributos necesarios con el objetivo de consumir los datos, un tipo null no puede ser identificado por el componente, ya que necesita de un tipo claramente definido.

Ejemplo no válido:

{
  "request": null
}

Ejemplo válido:

{
  "request": 1000
}

Para resolver esta situación, basta con definir el tipo correcto para el atributo especificado. Si no sabe cuál es el tipo del atributo a ser aplicado, verifiquélo en la especificación del servicio a ser integrado.

En el ejemplo válido, el tipo del atributo será identificado como numérico. En el valor del atributo, agregue un valor que corresponda al tipo deseado por el servicio integrado.

 

El objeto "Identificador del parámetro" debe tener al menos un hijo

Este problema ocurre cuando, en el JSON del cuerpo de la petición/respuesta, hay un atributo que es un objeto JSON, pero este no tiene ningún hijo asociado. Por ello, el componente no consigue interpretar el atributo.

Ejemplo no válido:

{
   "“request": [
"r1" : {}
]
}"

Ejemplo válido:

{
   "request":[
      "r1":{
         "id":90,
         "name":"test"
      }
   ]

En el ejemplo no válido, el JSON no será interpretado correctamente por el componente, ya que el atributo r1 es un objeto sin hijos asociados.

Para resolver el problema, se deben mapear correctamente los hijos del atributo con el problema. Esta información debe ser verificada en la especificación del servicio a ser integrado.

 

Problemas al consumir la fuente en la prueba de consumo

No fue posible formar el cuerpo de la petición/respuesta para la fuente de datos

Este problema puede ocurrir debido a alguna de las siguientes situaciones:

  • Mapeo incorrecto del cuerpo de la petición/respuesta en la fuente de datos: verifique si los atributos mapeados en el cuerpo de la petición/respuesta están de acuerdo con el servicio a ser consumido.
  • Parámetros del tipo PATH fueron declarados, sin embargo, no todos han sido llenados: llene todos los parámetros del tipo PATH antes de consumir la fuente.

 

No se pudo llamar al servicio de la fuente de datos: java.net.ConnectException: Connection refused (Connection refused)

Puede significar que el host y el puerto del servicio especificado (en la URL pasada durante la etapa Datos del servicio REST) no están siendo encontrados al consumir el servicio. Verifique si la URL declarada es válida para consumo.

 

No se pudo llamar al servicio de la fuente de datos: java.net.UnknowHostException

Al intentar consumir el servicio, la fuente no está encontrando el host del servicio. Verifique si el dominio de la URL es un dominio válido.

 

HTTP Code

Si se devuelve alguno de los status HTTP como respuesta al consumir el servicio, verifique la siguiente tabla, según el status devuelto:

  • 401 (HTTP 401 Unauthorized)
    ◦ El servicio requiere autenticación para ser consumido. Verifique si la fuente de datos tiene autenticación y si está correcta.
  • 403 (HTTP 403 Forbidden)
    ◦ El servicio especificado no permite acceder al recurso solicitado.
  • 500 (HTTP 500 Internal Server Error)
    ◦ Se produjo algún error no esperado en el recurso a ser consumido.

 

Conclusión

¡Eso es todo! Ahora usted ya conoce posibles soluciones en el caso de que encuentre problemas mientras utiliza las fuentes de datos REST.


¿Le ha resultado útil este artículo?