Primer REST API Java con Spring Boot.

 

Si estas determinado a iniciar tu camino para aprender Spring framework bienvenido. Voy a iniciar creando una tutorial sencillo con un paso a paso de cómo crear tu primer app REST API, puedes escribirme si quieres algunos consejos o tienes dudas en alguno de los pasos.

 


Lo primero que vamos a hacer es identificar las herramientas que necesitas:

Y esto será el comienzo.


Paso 1. Descargar el JDK que quieras desde el site de oracle o el openjdk (este te direcciona a https://jdk.java.net/archive/ ).


Aparecen todas las versiones existentes tu selecciona según el sistema operativo que uses.




La instalación es solo next next.

Paso 2. Instalar Spring Tool 4. La suite de Desarrollo de Spring Framework, que no es nada mas que un eclipse adecuado para trabajar con este. Descarga desde https://spring.io/tools


Paso 3. Descomprime el archivo es un .jar

 

 

Paso 4. Ingresa en la carpeta que se descomprime en mi caso es la carpeta “sts-4.13.0.RELEASE” y ejecuta el .exe SpringToolSuite4.exe para abrir la suite de desarrollo de Spring.

 


Paso 5. Crea o selección un directorio que funcionara como tu workspace para proyectos java y continuas.




 Paso 6. Vamos a crear un proyecto del tipo “Spring Starter Project”

 


 

Paso 7. Ahora lo único que necesitas es darle un nombre y continuar o puedes personalizar todo.

  • Name: HelloDemo (Este campo representa el nombre del proyectp)
  • Packaging: Jar (Selecciona el tipo de empaquetado por defecto es Jar, pero puedes agregar War si quieres desplegar en un Tomcat , Glassfish, etc)
  • Java Version: 11  (version del compilador Java yo seleccine 11 pero si tienes mas puedes seleccionar, pero debe ser superior a java 1.8)
  • Group: com.example (Nombre del grupo del paquete es para distribuciones)
  • Artifact: HelloDemo (el nombre del compente o binario compilado)
  • Version: 0.0.1-SNAPSHOT (Version del componente)
  • Package com.example.demo (Ruta del namespace o package esta ruta es la raíz del aplicativo)

 


Nota: Los datos que colocas puedes modificarlo cuando quieras, así que tranquilo.


Paso 8. Selecciona las dependencias básicas que necesitamos para el proyecto, las cuales son:

  • Spring Boot DevTools (Para poder probar )
  • Spring Web (Necesitamos la dependencia para manejar las secuencias necesaria para los RESTAPI )

Y presionar el botón de finalizar para crear el proyecto.

 


Paso 9. Explora todo lo que creo, la estructura de carpetas, el archivo java de arranque con el nombre HelloDemoApplication, esta clase tiene una anotación @SpringBootApplication, esta anotación es la que buscara el motor de spring Boot DevTools cuando inicias el aplicativo.



Paso 10. Crearemos dos packages dentro de la raíz de com.example.demo, esto no lo olviden porque Spring cuando inicia escanea todos los packages y clases que estén dentro de la raíz y lo que no este no se cargara. Para crear los paquetes puedes darle botón derecho del ratón cobre el paquete raíz o usa el menú File.



El primer package “com.example.demo.controllers”. Este paquete se utilizará para agregar las clases de controladores y puntos de enlace de las api.



Después el package “com.example.demo.models.entity”, este paquete tendrá las clases pojo que utilizaremos para crear las entidades que  viajaran en las respuesta de solicitudes.




Ahora tenemos los dos packages creados, aunque vacías, pero no se preocupen ya lo vamos a llenar de clases.




Paso 11. Agregamos la primera clase: HelloDemoController.java. Simplemente con presionar botón derecho del mouse sobre el package com.example.demo.controllers.




Paso 12. Para poder convertir la clase HelloDemoController en un recurso rest agregamos la anotación @RestController la cual debe importar org.springframework.web.bind.annotation.RestController.


package com.example.demo.controllers;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class HelloDemoController {
 
}


Despues agregamos el metodo helloWorld con modificador publico y que retorne un String.

 

       public String helloWorld() {
             return "Hello World";
       }

Esto no es suficiente para convertirlo en un recurso rest debemos agregarle la anotación @GetMapping que recibe en el parámetro path el valor de una ruta de acceso en nuestro caso será “/hello-world”.

package com.example.demo.controllers;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class HelloDemoController {
       @GetMapping(path = "/hello-world")
       public String helloWorld() {
             return "Hello World";
       } 
}

Nota: aquí estamos usando la anotación GetMapping que representa una invocación del método http GET

Paso 13. Hagamos la primera prueba con springboot, sobre el nombre del proyecto presiona botón derecho del mouse y busca la opción Run As y luego click Spring Boot App para iniciar la ejecución.

 


En pocos segundos iniciar la aplicación por el puerto 8080 (puerto por defecto el cual puedes cambiar si lo deseas).



Paso 14. Comenzamos a probar el arranque de la aplicación, abre el navegador que mas te guste y agrega la dirección http://localhost:8080/hello-world


¡Que fácil cierto!
 
Paso 15. Creemos un método que retorne datos en formato json. Empecemos creando una nueva clase dentro del package com.example.demo.models.entity con el nombre HelloBean.






Ahora agregar un atributo message de tipo String con modificador private.

private String message;

Agrega un contructor que reciba un argumento de tipo String

       public HelloBean(String message) {

             this.message = message;

       }

 

Incluse get y set al atributo message para poder manejar los datos. La clase al debe verse de la siguiente forma:

package com.example.demo.models.entity;

 

public class HelloBean {

       private String message;

 

       public HelloBean(String message) {

             this.message = message;

       }

 

       public String getMessage() {

             return message;

       }

 

       public void setMessage(String message) {

             this.message = message;

       }

}

Paso 16. Agreguemos otro método en la clase HelloDemoController, va a hacer un método de tipo público que retorna un objeto HelloBean, también le incluimos la anotación @GetMapping con el argumento "/Hello-world-bean" el cual será nombre del path que utilizaremos para invocar el método, esto debe quedar de la siguiente forma:

       @GetMapping("/Hello-world-bean")

       public HelloBean helloWorldBean() {

             return new HelloBean("Hola Bean Formato Json");

       }

Acuerden de importar la clase com.example.demo.models.entity.HelloBean.
El código final es el siguiente:


package com.example.demo.controllers;
 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.models.entity.HelloBean;
 
@RestController
public class HelloDemoController {
      
       @GetMapping(path = "/hello-world")
       public String helloWorld() {
             return "Hello World";
       }
      
       @GetMapping("/hello-world-bean")
       public HelloBean helloWorldBean() {
             return new HelloBean("Hola Bean Formato Json");
       }
}

Guarden los cambios automáticamente spring actualizara el despliegue por lo que solo deben ir al navegador y colocar la siguiente url http://localhost:8080/hello-world-bean .



Algo muy sencillo cierto.


Continua leyendo en mi blog te puede interesar como hacer una REST API CRUD, o cuatro formas de publicar una app web en azure.





Comentarios

Entradas populares de este blog

Jboss EAP 7.4 with IBM MQ