En esta oportunidad hablaremos un poco sobre estos temas comunes que durante los desarrollos de este tipo de servicios afromtaremos.
En lo relacionado al CONTROL DE ERRORES en Web Service, tenemos 2 formas de manejarla:
1. MEDIANTE 'SOAP FAULTS': Esta opción agrega en el WSDL un 3er message para el control de excepciones, esto
permitirá que antes algún posible error de cualquier tipo en el servicio, esta excepción sea y mostrada toda la traza del
error en el fault de respuesta.
2. MEDIANTE 'RESPONSE PERSONALIZADO': Este manejo cubre el uso de un 'complexType' que soportará un idTransaccion y mensajeRespuesta, el cual serán siempre personalizados y seteados los mensajes ya sean exitoso o con error.
Por otro lado, a las VALIDACIONES de formato, existen varias formas:
1. MEDIANTE INTERFACE XSD: Esta opción requiere que todas las restricciones sean ingresadas a nivel de .xsd por medio de 'simpleType', esto permitirá que si algún atributo del REQUEST no cumpla con la restricción automáticamente sea rechazado y no ingrese al flujo de servicio. Este manejo no permite identificar qué campo ha sido mal enviado.
2. MEDIANTE VALIDACIONES EN CÓDIGO: Esta opción requiere que los atributos del REQUEST sean validados uno por uno mediante sentencias IF / ELSE. Y permite saber identificar qué campo es el que ha sido mal enviado por la aplicación consumidora.
RECOMENDACIONES:
Debido a mi experiencia puedo mencionar las
siguientes recomendaciones:
CONTROL DE ERRORES: Recomendaría la opcion#2,
ya que brinda un mejor control tanto para la identificación de las
transacciones, variedad de mensajes exitosos y erróneos que se pueden
personalizar.
Esto ayuda sobre todo a las aplicaciones consumidoras para la identificación respectiva. Esta es una ventaja que la opcion#1, no se puede manejar ya que simplemente aquí ante un error revienta y muestra la traza completa del error.
Esto ayuda sobre todo a las aplicaciones consumidoras para la identificación respectiva. Esta es una ventaja que la opcion#1, no se puede manejar ya que simplemente aquí ante un error revienta y muestra la traza completa del error.
VALIDACIONES: Recomendaría un híbrido
entre las 2 opciones, esto se manejaría definiendo un .xsd con las
restricciones del servicio 'simpleType', este archivo sería
utilizado para validar dichas restricciones a nivel de código pero directamente
igualando REQUEST contra .xsd, si cumple con las restricciones se acceder al
flujo del servicio y sino se responde el mensaje personalizado.
Si se tiene un
desconocimiento de cómo aplicar esto por ejemplo en JAVA podemos apoyarnos en
las librerías: JDOM, XMLBEANs y JAXB, para realizar las transformaciones
y validaciones respectivas.
No hay comentarios:
Publicar un comentario