Creando un servicio REST de consulta y persistencia en base de datos
A lo largo del curso aprendí un nuevo estilo para el consumo de información a través de servicios REST ((Representational State Transfer), basado en ASP.NET. En realidad este tipo de servicio a diferencia de servicios web SOAP es un nuevo estilo de arquitectura para desarrollar servicios. El cumple las siguientes premisas.
- Sin estado : No se mantiene el estado, ya que cada petición es independiente de cualquier otra petición.
- Son cliente / servidor : Hay comunicación entre ambas partes, pero bien diferenciadas y independientes (separan responsabilidades).
- Cacheable: Los datos obtenidos (json) se pueden mantener en cache y con esto mejorar el performance del aplicativo.
- Puede ser en capas: Está orientado a la escalabilidad y puede ver en el intermedio un balanceador de los servicios.
- Son servicios uniformes : Quiere decir que se puede utilizar funciones uniformes siguiendo un esquema CRUD.
A continuación se muestra como crear un servicio REST el cual puede consultar datos de una base de datos , así como guardar contenido.
Escenario = “Se requiere obtener y/o registrar reservas de una sala mediante un formulario asp.net utilizando un servicio REST, las reservas se guardarán en una base de datos en su tabla respectiva”.
- Creamos un proyecto del tipo WCF Application Service
- Creamos una carpeta llamada “Dominio” en donde colocaremos nuestra entidad llamada “Reserva”
- Creamos una carpeta llamada “Persistencia” en donde colocaremos nuestra entidad “ReservaDAO” la cual la utilizaremos para las operaciones de persistencia de datos.
- Luego agregamos un servicio llamada “ReservaServiceRest”
- Nuestro proyecto quedará de la siguiente manera:
- Nuestra base de datos ReservaDB tiene una tabla llamada Reserva, con la siguiente definición.
- Luego de esto creamos modificamos nuestra clase Reserva para que representa a nuestra tabla en la base de datos y realizamos las configuraciones para que sea compatible con el servicio WCF.
- Escribimos nuestras operaciones en la capa de persistencia DAO.
- Luego configuramos nuestra interface del servicio para luego implementarla en el servicio ReservaServiceRest.svc.
- Como verán a los métodos de la interface se les configura el tipo de Métod Rest que se le asignará, en este caso los tipos POST y GET, así como la nomenclatura en la URITemplate que podrá ser utilizado desde el browser.
- La url como podrá ser utilizada nuestro servicio podrá ser por ejemplo http://servidor/reservas/1 , en donde el último valor representa el código de la reserva que está presente en la base de datos. Esta es una forma fácil de publicar y consumir servicios desde la propia url del browser.
- Su implementación en el servicio quedaría de la siguiente manera.
- Una vez ya implementado el servicio podemos ejecutarlo y probarlo desde la web, de la siguiente manera. http://localhost:63870/ReservasService.svc/reservas/5439
- Lo podemos validar en la base de datos los resultados obtenidos.
- Con esto hemos terminado de crear nuestro primer servicio REST para ser consumido desde cualquier aplicativo.
- Tener en cuenta que los datos obtenidos por nuestro servicio rest son de tipo JSON, lo cual hace que a diferencia de obtener XML nuestro servicio sea más ligero.
Referencias de post : http://www.arquitecturajava.com/servicios-rest/