Icon 100x60 java rest gradle spring Servicio REST con Spring usando Gradle en Java

en

Cómo crear un sencillo servicio web REST que nos devolverá un objeto JSON usando el framework de Java Spring y la herramienta Gradle.

Material necesario

Build con Gradle

Creamos un archivo llamado build.gradle en la carpeta raíz de nuestro proyecto con el siguiente contenido:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.2.RELEASE")
    }
}
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
bootJar {
    baseName = 'gs-rest-service'
    version =  '0.1.0'
}
repositories {
    mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

Este script le indica a Gradle las dependencias del proyecto así como los plugins que se utilizarán.

Proyecto JAVA

Creamos un árbol de directorios dentro de nuestra carpeta de proyectos, por ejemplo:

mkdir -p src/main/java/miaplicacion

Luego dentro de la carpeta miaplicacion, creamos un archivo llamado Resource.java con el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package miaplicacion;
public class Resource {
    private final long counter;
    private final String text;
    public Resource(long counter, String text) {
        this.counter = counter;
        this.text = text;
    }
    public long getCounter() {
        return counter;
    }
    public String getText() {
        return text;
    }
}

A continuación definimos el controlador que recibirá las peticiones de los usuarios y responderá con un objeto JSON:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package miaplicacion;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ResourceController {
    private static final String template = "Hola, %s!";
    private final AtomicLong counter = new AtomicLong();
    @RequestMapping("/resource")
    public Resource resource(@RequestParam(value="nombre", defaultValue="Mundo") String name) {
        return new Resource(counter.incrementAndGet(),
                            String.format(template, name));
    }
}

Aplicación principal

La clase principal de la aplicación es la siguiente.

1
2
3
4
5
6
7
8
9
package miaplicacion;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Para ejecutar la aplicación, desde la raíz de la misma ejecutaremos el comando

gradle bootRun

que se encarga de compilar el código y dejar abierto un servidor web en la dirección http://localhost:8080/resource. Accediendo a esa url veremos el objeto JSON y nos devolverá el contenido:

{"counter":1,"text":"Hola, Mundo!"}

Para ver el tutorial completo en inglés y como hacer builds con Maven puedes dirigirte a la página oficial https://spring.io/guides/gs/rest-service/

Prohibida la reproducción total o parcial de este artículo sin el previo consentimiento de Webtutoriales.com

Comentarios