Tutorial: Cliente para servicio web REST con REST Hooks usando JAX-RS (Jersey) y Maven

Martes, agosto 4, 2015 10:33
Publicado en la categoría Programación, Software, Tutoriales
Download PDF

El título del post parece un poco críptico, así que primero lo analizaremos con calma.

Un servicio web se puede resumir como el conjunto de tecnologías que permiten intercambiar información a través de la web entre aplicaciones.

REST (Representational State Transfer) es un estilo de arquitectura software, orientado a crear servicios web escalables. A grandes rasgos establece una serie de restricciones y permite el acceso y modificación de recursos a través de URLs mediante los verbos HTTP (GET, POST, PUT  y DELETE). Para el envío de datos en el cuerpo HTTP se suele usar JSON o XML.

Los REST Hooks surgen para solventar una carencia de las arquitecturas REST. Un servicio REST permite que un cliente acceda a los recursos que el servidor ofrece, como hemos dicho, mediante HTTP. Para crear, modificar o eliminar recursos, no ofrece ninguna complicación. El problema viene cuando queremos, como cliente, saber si se ha producido un cambio en un recurso. Ante este caso, la única solución es consultar el servicio REST periódicamente para obtener dicho recurso y comprobar si ha cambiado. Esto crea una sobrecarga enorme sobre el servidor, y tiene la limitación de que siempre va a haber un retardo entre que se produce el cambio y el cliente lo detecta. Los REST Hooks permiten es una suscripción al servicio REST. El cliente hace un POST al servicio REST, suscribiéndose a un evento concreto. Para ello envía en el POST una URL en la que permanece a la escucha. El servidor, cuando se produce el evento, comprueba las suscripciones y envía un mensaje a las URLs asociadas.

Finalmente, Jersey es una implementación de la especificación JAX-RS, que permite la creación de servicios REST Java mediante el uso de anotaciones. De Jersey también utilizaremos la capacidad de mapear JSON a POJO y viceversa, cosa que hace apoyándose en Jackson, una librería Java para el procesado de JSON.

Leer el resto de la entrada »

MongoDB y Java: Parte V, más consultas, usuarios, roles y autenticación

Miércoles, julio 22, 2015 13:12
Publicado en la categoría Seguridad, Software, Tutoriales, Windows
Download PDF

Para finalizar vamos a ver algunas otras acciones y consultas que podemos realizar sobre la base de datos, cómo activar y configurar la autenticación, y el uso de usuario y roles. Con la autenticación conseguiremos que solo los usuarios que definamos, haciendo uso de una contraseña y mediante la asignación de roles, puedan acceder a cierta base de datos y dentro de ella realizar determinadas acciones.

Creando bases de datos y colecciones desde Java

Ya hemos visto cómo utilizar la herramienta mongoimport para añadir información a una base de datos a partir de  un archivo JSON. El driver MongoDB de Java también permite crear bases de datos y colecciones directamente.

Para crear una nueva base de datos, tenemos que usar getDatabase y sobre ella, getCollection. En el momento en que escribamos algo en la colección, se creará la base de datos.

Si queremos que se cree explicitamente sin contenido, podemos usar createCollection:

Para listar todas las bases de datos, podemos usar las siguientes líneas:

Y lo mismo para las colecciones:

Estos dos últimos ejemplos recuperan todos los nombres de las bases de datos y las colecciones respectivamente, y los muestran uno por uno.

Leer el resto de la entrada »

MongoDB y Java: Parte IV, consultas básicas a la base de datos

Viernes, julio 17, 2015 12:55
Publicado en la categoría Software, Tutoriales, Windows
Download PDF

Una vez configurado el entorno y probado que podemos conectarnos y acceder a la base de datos, vamos a ver como realizar consultas básicas desde Java a MongoDB. En la parte III vimos como conectarnos, seleccionar una colección y contar el número de documentos en ella.

 

Obtener todos los elementos de la colección

El método find() nos permite obtener todos los documentos de una colección, y first() devuelve el primer elemento de cualquier consulta. Llamar a first() sobre una consulta es útil cuando esta debería devolver un solo elemento o queremos el primer elemento de dicha consulta. En el caso de que la consulta no devuelva resultados, first() devuelve null.

Leer el resto de la entrada »

MongoDB y Java: Parte III, creando un proyecto en NetBeans con Maven

Viernes, julio 17, 2015 11:16
Publicado en la categoría Software, Tutoriales, Windows
Download PDF

Vamos a ver cómo crear un proyecto en Netbeans con Maven desde el que nos conectaremos a la base de datos MongoDB que creamos en las partes anteriores de este tutorial. Maven es una herramienta orientada a la gestión de proyectos, en nuestro caso lo utilizaremos principalmente para la gestión de dependencias. De esta forma delegaremos en Maven la descarga de todas las librerías que usemos en el proyecto olvidándonos casi por completo de esta tarea.

A partir de ahora por simplicidad solo explicaré los pasos en el entorno Windows, que en casi su totalidad se corresponderán punto por punto a como se haría en Debian.

Desde NetBeans creamos un nuevo proyecto, y seleccionamos “Maven”  y “Java Application”.

nuevo-proyecto-maven

Leer el resto de la entrada »

MongoDB y Java: Parte II, instalación de MongoDB y Netbeans en Windows 8

Viernes, julio 17, 2015 9:42
Publicado en la categoría Programación, Software, Tutoriales, Windows
Download PDF

Ya hemos visto como instalar el entorno MongoDB y Netbeans en Debian 7, ahora veremos como hacerlo en Windows 8, antes de crear nuestro primer proyecto Java y comenzar con los ejemplos. Comencemos con la instalación de MongoDB.

Únicamente debemos descargar el instalador .msi disponible en la página de descargas MongoDB. En nuestro caso elegimos la versión “Windows 64-bit 2008 R2+”. A parte de aceptar la licencia y elegir dónde queremos instalarlo, poco más tendremos que hacer. La instalación ocupa unos 286MB.

Una vez instalada, abrimos un terminal con permisos de administrador y podemos crear la carpeta “\data\db” que es la que utiliza por defecto para almacenar las bases de datos.

Leer el resto de la entrada »

MongoDB y Java: Parte I, instalación de MongoDB y Netbeans en Debian 7

Jueves, julio 16, 2015 9:29
Publicado en la categoría Linux, Programación, Software, Tutoriales
Download PDF

MongoDB es un sistema de bases de datos NoSQL y de código abierto. El término NoSQL (Not only SQL) hace referencia a los sistema de gestión de base de datos que no implementan un modelo relacional. En concreto MongoDB en lugar de tablas utiliza colecciones, que son conjuntos de documentos [tuplas en el modelo relacional] en formato BSON, una representación binaria de objetos JSON. Esto hace muy sencillo el mapeo del modelo de datos de una aplicación orientada a objetos a una base de datos MongoDB. Tiene muchas más particularides, lo mejor para tener una visión completa del sistema es consultar la extensa documentación disponible en la web del proyecto. En esta serie de tutoriales vamos a ver como instalar y configurar un entorno con MongoDB y Netbeans. Dentro de Netbeans usaremos Maven para gestionar los proyectos Java desde los que acceder a la base de datos. En esta primera parte instalremos y configuraremos MongoDB y Netbeans en Debian 7.

Leer el resto de la entrada »