- ¿Qué es una base de datos? - noviembre 7, 2020
- ¿Es la programación una profesión para ti? - septiembre 3, 2020
- Temporada 2020-2021 - julio 15, 2020
Introducción
Tal y como te contaba en la primera parte de esta serie de artículos, vivimos en un mundo en el que la integración es la base en la construcción de nuevos modelos de negocio. Esta es la razón de la elaboración de esta serie de artículos relacionados con la integración mediante servicios REST.
En el artículo anterior te contaba los aspectos teóricos relacionados con esta tecnología, en éste, voy a contarte como hacer un desarrollo utilizando Apache Tomcat y Eclipse.
¡Empecemos!
Instalando Apache Tomcat
El primer paso que vas a dar en el desarrollo de este ejemplo práctico es la descarga e instalación del servidor web donde instalarás el servicio web.
El servidor web que vas a utilizar es Apache Tomcat, es el servidor web más robusto de los existentes, además, es un servidor web open source y gratuito. Puedes descargarlo de aquí.
Vas a utilizar la versión 7, por lo que tienes que irte en el menú de Download a Apache 7. Una vez dentro, descarga la versión en ZIP.
Una vez tengas el fichero descargado, descomprímelo y cópialo en la ubicación donde quieras dejarlo instalado.
Para arrancarlo dependerá del sistema operativo que uses, en caso de entornos Microsoft, debes de ejecutar el fichero startup.bat y en entornos Unix el fichero startup.sh. Ambos ficheros se encuentran en la carpeta Bin de la carpeta de instalación que descargaste.
Una vez arranques Apache Tomcat, accede desde el navegador a la URL http://localhost:8080 y verás la pantalla de inicio:
¡Únicamente te falta un paso para tener Apache Tomcat totalmente configurado para instalar tus desarrollos!
Para completar la instalación tienes que modificar el fichero que contiene los usuarios del servidor, se encuentra en la carpeta conf y se llama tomcat-users.xml. A continuación te pongo un ejemplo con el que puedes dejarlo configurado:
Truco
Si usas Mac, como yo, hay un software gratuito que te permite arrancar y configurar la instalación Apache Tomcat. Puedes descargarlo de aquí.
Una vez instalas el software, al arrancarlo aparece la pantalla principal desde donde podrás arrancar Apache Tomcat, pararlo y abrir la página de inicio en el navegador.
En el menú de preferencias tienes la pantalla para configurar la ruta donde tienes instalado Apache Tomcat y el puerto donde quieres arrancar el servidor.
Desarrollo API REST con Eclipse
¡Llegó el momento! ¡Voy a explicarte paso a paso lo que tienes que hacer para desarrollar un servicio web REST!
Paso 1: Creación del proyecto
Lo primero que tienes que hacer es crear un proyecto de tipo Dynamic Web project.
Una vez que lo selecciones, tienes que indicar el nombre que le pondrás al proyecto. En este caso yo le he puesto TimeOfSoftware.
Una vez que se crea el proyecto en Eclipse tienes que comprobar si en la carpeta WebContent\WEB-INF está el fichero web.xml.
En caso de que no lo tengas, tienes que generar uno… Para ello, generaremos uno desde el menú contextual del proyecto:
El fichero quedará generado:
Paso 2: Conversión a Maven
Una vez tienes tu proyecto listo para empezar, es el momento de convertirlo en proyecto Maven. Para ello, desde el menú contextual tienes que seleccionar Convert to Maven.
En la pantalla que se abrirá, dale a siguiente, es la configuración del fichero POM (Project Object Model), el fichero principal de todo proyecto Maven.
Una vez finalizada la conversión, la estructura de ficheros del proyecto es la siguiente:
Paso 3: Configuración de ficheros
Ahora te toca configurar los ficheros pom.xml y web.xml.
Para pom.xml tienes que añadir las dependencias para:
- asm.jar
- jersey-bundle.jar
- json.jar
- jersey-server.jar
Ahora le toca a web.xml, tienes que añadir la información referente a los servlets.
El siguiente paso es actualizar el proyecto Maven desde el menú contextual para que todas las referencias y dependencias sean actualizadas:
Paso 4: Creación del servicio
¡Llegó el momento de generar los servicios que vamos a incluir en nuestro web service!
Yo he creado una clase con dos métodos GET, uno de ellos devuelve una lista de identificadores de artículos y el otro devuelve la información específica de cada uno de los artículos.
Paso 5: Exportación a WAR
Una vez tienes la clase desarrollada y sin errores, es el momento de que exportes a WAR la aplicación que acabas de hacer. Para ello tienes que seleccionar la opción exportar en el menú contextual del proyecto.
En la siguiente pantalla tienes que indicar la ruta donde exportarás la aplicación, además, tienes que indicarle el nombre, aunque ya viene uno por defecto.
Ahora que ya tienes la aplicación exportada, ya únicamente te falta desplegarla en Apache Tomcat y… ¡empezar a usarla!
Paso 6: Despliegue en Apache Tomcat
Para desplegarla tienes que entrar en Apache Tomcat, http://localhost:8080. Una vez has entrado, tienes que entrar en la sección de aplicaciones, Manager App:
Va a pedirte usuario y contraseña para entrar en esta sección, recuerda que al principio te enseñé a configurar usuarios y contraseñas para Apache Tomcat.
Una vez estés dentro, navega en la página hasta la sección titulada: Archivo WAR a desplegar.
Tienes que indicarle el WAR a subir y darle a Desplegar. Una vez termine el despliegue de la aplicación te aparecerá en la lista de aplicaciones.
¡Voilá! ¡Ya tienes tu servicio web REST ejecutándose! Ahora llega el momento de comprobar que el desarrollo que has realizado funciona correctamente.
Probando el desarrollo
Lo primero que vas a probar es el método que te devuelve todos los artículos, que es la URL de los artículos pero sin recibir ningún parámetro, es decir: http://localhost:8080/TimeOfSoftware/timeofsoftware/articulo/
Si todo está correcto, recibirás el siguiente resultado a la invocación:
La siguiente prueba es probar a pedir cada uno de los artículos devueltos en la prueba anterior. Para ello, tienes que invocar la URL pero esta vez pasándole un parámetro como argumento de la invocación.
Para pedir el artículo con identificador 1: http://localhost:8080/TimeOfSoftware/timeofsoftware/articulo/1
Para pedir el artículo con identificador 2: http://localhost:8080/TimeOfSoftware/timeofsoftware/articulo/2
Lo último será probar a pedir un artículo que no esté en la lista: http://localhost:8080/TimeOfSoftware/timeofsoftware/articulo/3
Resumen y conclusiones
Con este artículo te he enseñado a crear servicios web basados en REST. Tal y como puedes ver, se trata de un proceso fácil y simple que estoy completamente seguro te abrirá muchas opciones de integración en todos los desarrollos nuevos que te plantees, aunque, obviamente, como estás pensando, ¡también te vale para desarrollos ya existentes! Por ello, en el siguiente post de la saga de ¡Intégrate! ¡Usa REST!, voy a enseñarte un nuevo ejemplo práctico, que, utilizando una base de datos MySQL, expondrá mediante una API REST los datos y operaciones sobre ellos para poder trabajar con ellos desde otras aplicaciones software.
Puedes descargarte el código fuente del ejemplo del repositorio de código fuente de Time Of Software, el proyecto TimeOfSoftwareREST