Como se habran dado cuenta, hace algunos dias hablamos (o nos quejamos jeje ) del diseno de unos servicios web.... aqui les dejo unas recomendaciones (Best Practices) a tomar en cuenta, quiza sean simples... pero elementales.. aunque muchas ocasiones no se siguen ;)
- NO usar elementos simples en las firmas de los metodos ; tomando como ejemplo public int obtenerCotizaciones(int nss), tenemos un problema: la escalabilidad del mensaje, si desearamos agregar la fecha de alta trendriamos que colocarlo de la siguiente manera public int obtenerCotizaciones(int nss,long fecha).. MAL , en lugar de eso debemos modelar un objeto que defina mi negocio (tanto entradas como salidas).... siguiendo con el ejemplo definamos:
- public class entradaCotizaciones {
private int nss;
private long fecha;
} - public class salidaCotizaciones {
private int numeroCotizaciones;
private boolean error;
private int codigoError;
private String descripcion;
} - public salidaCotizaciones obtenerCotizaciones(entradaCotizaciones entrada)
- Usar Built-Data Types al disenar el XSD del servicio
- Si se pretende utilizar mensajes estandar (Hl7, eGov, xCIL, XNAL), evitar el uso de anyType en el envio del mensaje, es recomendable generar un modelo de negocio basado en los XSD que vienen con el estandar.
- Muy importante, definir los elementos para el manejo de errores, que permitan manipular la respuesta de acuerdo a las condiciones que se presenten
- private boolean error; // describe si existie o no error
private int codigoError; // indica el tipo del error
private String descripcion; // describe que fue lo que sucedio
Va pues, comentarios bienvenidos :)
Por una integracion mejor, hasta la vista!
Tuzo