En este artículo, aprenderemos cómo desarrollar una aplicación de servicio web RESTFul simple usando Spring Boot. Usamos Maven para construir este proyecto ya que la mayoría de los IDE lo admiten.
Antes de iniciar debemos saber que Spring boot es un subproyecto desarrollado por desarrolladores de Spring Framework, para crear aplicaciones independientes de grado de producción con la mínima configuración posible.
Herramientas y tecnologías utilizadas
- Spring Boot – 2.1.6.RELEASE
- JDK – 1.8 or later
- Spring Framework – 5.1.8 RELEASE
- Maven – 3.6.1
- IDE – IntelliJ 2019.1
Creando Spring boot Project
Hay muchas formas de crear una aplicación Spring Boot. La forma más sencilla es usar Spring Initializr en http://start.spring.io/, que es un generador de aplicaciones Spring Boot en línea.
Pero para este proyecto vamos a utilizar el initializr incluido en intelliJ
Donde podemos observar que solamente hemos seleccionado los siguientes dos componentes:
- Spring Boot DevTools
- Spring Web Starter
Estructura del directorio del proyecto
La siguiente es la estructura de empaque de esta aplicación para su referencia.
El archivo pom.xml
Este archivo es el principal dentro de los proyectos maven, en el se incluyen todas las librerías o grupo de librerías que nuestro proyecto manejara.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.rootnite.training</groupId>
<artifactId>hello-rest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>hello-rest</name>
<description>Hello world Rest - Spring boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Spring boot REST API
Ahora es el momento de incorporar cualquier funcionalidad en la aplicación hello world. Puede agregar funcionalidad según su necesidad, para este caso nosotros agregaremos un siemple endpoint donde se listara la lista de empleados con el método GET.
Crear el modelo
Crear clase de modelo Employee.
package com.rootnite.training.hellorest;
public class Employee {
private Integer id;
private String firstName;
private String lastName;
private String email;
public Employee() {
}
public Employee(Integer id, String firstName, String lastName, String email) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Employee [id=" + id + ", firstName=" + firstName
+ ", lastName=" + lastName + ", email=" + email + "]";
}
}
Crear controlador REST
Crear la clase controlador para nuestro modelo Employee, mismo que contendrá todos los endpoints, en este caso la lista de empleados.
package com.rootnite.training.hellorest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/api/v1/employees")
public class EmployeeController {
@RequestMapping("")
public List<Employee> getEmployees() {
List<Employee> employeesList = new ArrayList<>();
employeesList.add(new Employee(1, "Edy", "Huiza", "edy.huiza@rootnite.com"));
return employeesList;
}
}
Compilación del proyecto
Ahora inicie la aplicación
ejecutando el método main () en HelloRestApplicaction. Se
iniciará el servidor Tomcat incorporado en el puerto 8080.
Como hemos configurado la URL de la
API REST para nuestro endpoint que lista los empleados registrados en el
sistema, esta esta en la siguiente ruta:
http://localhost:8080/api/v1/employees
Misma que puede ser consumida desde cualquier aplicación, para probar vamos a utilizar el cliente rest postman:
Esto es todo por este ejemplo de hello world de spring boot rest con un simple ejemplo de rest api.
Como siempre te dejo el link del repositorio en GitHub del proyecto.
Happy coding.