Spark Framework es un conjunto de librerías para los lenguajes Java y Kotlin que nos sirve para el desarrollo rápido y sencillo de aplicaciones web.
En este post realizaremos una breve introducción práctica a este micro framework desarrollando una aplicación trivial como ejemplo.
¿Que necesitamos?
Nivel: Intermedio-Avanzado
Tiempo 15 minutos
Paso 1: Crear y configurar el proyecto
Archivo -> Nuevo Proyecto, en categorías seleccionamos maven y en proyectos java application , para continuar presionar el botón [siguiente]
A continuación escribimos el nombre del proyecto EjemploSpark (sin espacios) y seleccionamos una ubicación para guardar el proyecto como se ve en la siguiente imagen.
Para crear el proyecto, clic en [terminar]
Clic derecho sobre Dependencias -> Agregar dependencias, en la ventana que aparece debemos llenar los siguientes datos:
<dependency> <groupId>com.sparkjava</groupId> <artifactId>spark-core</artifactId> <version>2.7.2</version> </dependency>
Estos datos se encuentran en la pagina del proyecto Spark la versión actual de Spark a la fecha de realización de este post, es la 2.7.2
Para terminar presionar [agregar]
Nuevamente clic derecho sobre Dependencias -> descargar dependencias declaradas, esperamos unos segundos para que se termine la descarga desde los servidores externos a nuestro servidor local.
Paso 2 «Hola Mundo»
No puede faltar el clásico «Hello World» y es lo que haremos a continuación.
Clic derecho en paquete de fuentes -> nuevo -> Java Main Class…
Escribir en Class Name «Main» y en package seleccionar nuestro package «net.jcmouse.ejemplospark«, clic en [terminar] para crear la clase principal.
Abre la clase Main y reemplaza por:
package net.jcmouse.ejemplospark; import static spark.Spark.get; /** * @see https://www.jc-mouse.net/ * @author mouse */ public class Main { public static void main(String[] args) { get("/saludo", (request, response) -> "Hola Mundo Cruel!!!"); } }
Eso es todo, tu primera app en Spark esta lista, F6 para ejecutar
Abre tu navegador favorito, escribe «http://localhost:4567/saludo» y presiona ENTER
Spark por defecto se ejecuta en el puerto 4567 bajo el server Jetty que esta embebido dentro nuestra aplicación, el puerto puede ser cambiado por otro usando port().
Paso 3 GET y POST
Ahora complicaremos un poco más las cosas implementando los métodos GET y POST a nuestro sencillo API REST.
GET. Nuestro saludo solicitara como parámetro un nombre (name), caso contrario saludara como «Hola Anónimo».
POST. Este método nos permite crear recursos, solo como ejemplo en este post lo usaremos para emular una autenticación de usuario para obtener ya sea el código 200 OK o 401 Unauthorized
Modificamos nuestra clase Main de la siguiente manera:
package net.jcmouse.ejemplospark; import static spark.Spark.get; import static spark.Spark.post; /** * @see https://www.jc-mouse.net/ * @author mouse */ public class Main { public static void main(String[] args) { get("/saludo", (request, response) -> { response.status(200);//Codigo de respuesta response.type("application/json");//tipo de contenido JSON return "{\"Saludo\": \"Hola " + ((request.queryParams("name") != null) ? request.queryParams("name") : "Anonimo") + "\"}"; }); post("/loquesea", (request, response) -> { response.type("application/json");//tipo de contenido //codigo de respuesta response.status( (request.headers("key")!=null)?200:401 ); //Imprime JSON y Headers enviado por el cliente System.out.println("body: " + request.body()); System.out.println("key: " + request.headers("key")); return "{\"Respuesta\": \""+((request.headers("key")!=null)?"Bienvenido":"Unauthorized")+"\"}"; }); } }
Guardamos los cambios y ejecutamos nuestra aplicación.
A continuación abrimos el cliente REST Imsomnia y creamos una nueva solicitud con el nombre de «Saludo» y el método GET, escribimos «http://localhost:4567/saludo» y presionamos SEND
Nuestro app responde con un «Hola Anonimo» porque no pasamos el parámetro name, modificamos nuestra solicitud de la siguiente forma»http://localhost:4567/saludo?name=JCMouse» y presionamos SEND
Para terminar creamos una nueva solicitud «Lo que sea» con el método POST con tipo de cuerpo JSON y escribimos «http://localhost:4567/loquesea» agregamos un pequeño objeto JSON en el body y presionamos SEND, es decir:
Obtenemos como respuesta un código 401 Unauthorized que quiere decir que no tenemos autorización para ver el servicio solicitado.
Nos dirigimos a la pestaña Header (1), añadimos un nuevo item «key» y su valor «123456» (2) (valor sin importancia) finalmente volvemos a presionar SEND y tenemos:
Ahora obtenemos como respuesta un código 200 y un mensaje de bienvenida.
Eso es todo por el momento, podemos ver como crear una app con Spark y Java 8 es bastante sencillo y el código es limpio y fácil de entender. El ejemplo de este post reitero es trivial y solo nos sirve para entender el funcionamiento básico de este microframework, espero les haya gustado.
enjoy!!!
ASCII acrónimo inglés de American Standard Code for Information Interchange (Código Estándar Estadounidense para el Inte[...]
Información sobre la serie: Neon Genesis Evangelion (新世紀エヴァンゲリオン, también conocido como «Evangelion») es una serie de an[...]
Instagram es una red social y aplicación para subir fotos y videos. Sus usuarios también pueden aplicar efectos fotográf[...]
NUEVA ESPECIFICACIÓN TÉCNICA DEL CÓDIGO DE CONTROL (Ver.7.0) En el marco del Nuevo Sistema de Facturación implementado p[...]
Hola 🙂 En este video tutorial veremos como crear y usar parámetros en reportes con JasperSoft Studio, la base de datos q[...]
Jasperreport nos brinda su propio visor de reportes, sin embargo en ocasiones queremos mostrar los informes directamente[...]