Saltar al contenido

Creación de un servicio web REST básico utilizando Grizzly, Jersey y Maven

septiembre 29, 2021

Objetivo

El propósito de esta guía es una introducción a la creación de un servicio web REST de Grizzly / Jersey que se puede almacenar y distribuir en un solo archivo JAR.

Tiempo para completar

45 minutos

Fondo

Normalmente, cuando un desarrollador piensa en crear un servicio web RESTful usando Java, asume que usar un servidor de aplicaciones Java EE es la única forma de crear este tipo de aplicación. Sin embargo, existen métodos alternativos ligeros más simples para crear aplicaciones RESTful utilizando Java SE. Este tutorial demuestra una de esas alternativas utilizando el servidor web Grizzly junto con el marco REST de Jersey.

Este tutorial cubre los conceptos básicos de la creación de una aplicación RESTful Grizzly / Jersey con Maven. La aplicación incluye un modelo de datos simple para demostrar cómo se procesan las solicitudes REST reales. Crea una clase de servicio web con anotaciones que convierte sus métodos en URL REST invocables. Finalmente, empaqueta su aplicación Java REST en un solo archivo JAR portátil que se puede ejecutar prácticamente en cualquier lugar.

Servidor web Grizzly

Project Grizzly es un servicio web Java puro creado con la API de NIO. El caso de uso principal de Grizzly es el componente de servidor web para el servidor de aplicaciones GlassFish. Sin embargo, el objetivo de Grizzly es ayudar a los desarrolladores a hacer mucho más eso. Con Grizzly, puede crear servidores escalables y robustos utilizando NIO, además de ofrecer componentes de marco extendidos que incluyen Web Framework (HTTP / S), WebSocket, Comet, ¡y más!

Jersey, REST y JAX-RS

El marco de servicios web RESTful de Jersey es un marco de calidad de producción de código abierto para desarrollar servicios web RESTful en Java. Jersey proporciona soporte para las API de JAX-RS y sirve como una implementación de referencia de JAX-RS. Jersey ayuda a exponer sus datos en una variedad de tipos de medios de representación y abstrae los detalles de bajo nivel de la comunicación cliente-servidor. Jersey simplifica el desarrollo de servicios web RESTful y sus clientes en Java de forma estándar y portátil.

Representational State Transfer (REST) ​​es un estilo de arquitectura de software para crear servicios web escalables. REST es una alternativa más simple a los servicios web basados ​​en SOAP y WSDL y ha alcanzado una gran popularidad. Los sistemas RESTful se comunican usando el Protocolo de transferencia de hipertexto (HTTP) usando los mismos verbos (GET, POST, PUT, DELETE, etc.) que los navegadores web usan para recuperar páginas web y enviar datos a servidores remotos.

La API de Java para servicios web RESTful (JAX-RS) proporciona API portátiles para desarrollar, exponer y acceder a aplicaciones web diseñadas e implementadas de acuerdo con los principios del estilo arquitectónico REST. La última versión de JAX-RS es la versión 2.0. El marco de Jersey es la implementación de referencia de JAX-RS.

Guión

El servicio web RESTful integrado en este tutorial es el inicio de una aplicación REST para administrar los datos del cliente. Para este ejemplo, los datos del cliente se almacenan en una lista. Creará un método web para devolver todos los clientes almacenados en la lista y un método para buscar un cliente por ID. Para simplificar las cosas, todos los datos se devuelven en formato de texto sin formato.

¿Que necesitas?

Para seguir este OBE, debe tener el siguiente software instalado en su sistema.

Notas de instalación

A continuación se ofrecen algunos consejos relacionados con las herramientas utilizadas para este OBE.

  • Ejecutando Maven por primera vez: La primera vez que ejecute Maven, descargará todo el software necesario para el proyecto actual. Por tanto, la primera vez que compile un proyecto, puede tardar unos minutos. También por implicación, necesita una conexión a Internet en vivo la primera vez que configura un proyecto.
  • Las capturas de pantalla se toman de un sistema Windows, pero los pasos descritos en este tutorial deberían funcionar con modificaciones mínimas en Linux o Mac OS X.
close