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.

Dejar respuesta

Please enter your comment!
Please enter your name here