Creando servicios RESTful con NetBeans 8

8
11676

En este tutorial vamos a ver cómo utilizar el asistente de NetBeans 8 para crear servicios RESTful fácilmente

Hace tiempo que no tocaba código y como tengo que impartir unos cursos para directivos de Gobierno SOA me he puesto a mirar como crear ejemplos sencillos y rápidos de servicios.
Aunque en mi contexto utilizamos más Eclipse, a mi siempre me ha gustado lo intuitivo de NetBeans. En este caso voy a enseñar como crear servicios RESTful usando los asistentes de NetBeans 8, bueno, hasta donde se puede.

Equipo

  • iMac (Retina 5K, 27 pulgadas, finales de 2014)
  • 4 GHz Intel Core i7
  • 16 GB 1600 MHz DDR3
  • AMD Radeon R9 M295X 4096 MB

Antes de empezar voy a ver la versión que tengo en mi Mac de Java.

Nos descargamos NetBeans, en Bundle para JEE:

Arrancamos

Creamos un nuevo proyecto

Elegimos el tipo aplicación Web

Voy a hacer un ejemplo de Pizza por lo que creo el proyecto con ese nombre

Elegimos en servidor de aplicaciones que viene por defecto

No elegimos ningún framework

Y damos a “Play” para probar que la aplicación funciona.

De momento solo tiene una página con un literal.

Ahora vamos a añadir un fichero

Elegimos RESTful WebService from patterns. Es lo más sencillo y luego ya tocaremos.

Elegimos el nombre del recurso a gestionar y de la clase contenedora

El proyecto por defecto no trae un Web.xml por lo que lo creamos a partir del mismo asistente.

Le metemos el servlet mapping de jersey.

Curiosamente hay un pequeño problema, que el código generado es de la versión 1 y no 2, por lo que hay que buscar las librería de la versión 1 (por internet), descargarlas y añadirlas a mano (dar al botón derecho en el proyecto para que aparezcan las propiedades)

No es difícil de encontrar

Lo descargamos, descomprimimos y añadimos.

Ahora ya tenemos un proyecto con este aspecto.

Si lo ejecutamos saldrá la pagina de antes.

Para ver algo debemos meter en el navegador la URL http://localhost:8080/PizzasAutentia/ (en mi caso)

Inicialmente fallará porque no hay un código mínimo y se lanza una excepción por defecto

Añadimos una linea solo para ver que funciona.

Yo he metido una respuesta en un pseudo xml

Como uso Firefox, instalo el pluggin RESTClient.

https://addons.mozilla.org/es/firefox/addon/restclient/

Ahora puedo controlar mejor que es lo que mando y llega

Vemos ejemplo de respuesta 200

Voy a hacer un poco de limpia, y solo dejo la clase PizzaRecursos, que nos sobra para hacer mapping y juguetear un poco con Jersey.

Este es el aspecto

Ahora que funciona, vamos a crear una clase y hacer el mapping directo a XML.

Creamos la clase Pizza

A manita (ya por no andar capturando más pantallas) creamos atributos, constructor por defecto, constructor deseado y lo anotamos como @XmlRootElement

No olvidar: import javax.xml.bind.annotation.*;

Aquí un poco más bonito

Modificamos el método get para decir que produce XML y que retorna un objeto de tipo Pizza.

Y la magia está hecha.

Ahora ya podéis entreteneros todo lo que queráis 🙂

8 Comentarios

  1. hola muy buen post me gustaria que me contactaras por correo para que me ayudes a aplicar este RESTfull con Base De Datos te lo agradeceria muchoo

  2. hola muy buen post me gustaria que me contactaras por correo para que me ayudes a aplicar este RESTfull con Base De Datos te lo agradeceria muchoo

  3. El proyecto no me funcionaba al principio, hasta que no puse un sin espacios en blanco…
    Sin embargo, no se necesita crear el archivo Web.xml. Pues la clase: ApplicationConfig, hace el trabajo. Es importante conocer que la carpeta por defecto es: webresources (se define en la propia clase), y debe estar en la ruta antes del path indicado.
    Tampoco necesitaba utilizar Jersery 1.x, con el actual me funcionó.
    El ejemplo, en: https://docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp1v/index.html es bastante interesante.

Dejar respuesta

Please enter your comment!
Please enter your name here