...
En Spring Boot, las peticiones HTTP se gestionan por medio de controladores. En nuestro caso la clase que hará de controlador REST deberá estar precedida por la anotación @RestController, y por @RequestMapping, que indicará la ruta base.
Para los métodos que contendrán el código a ejecutar al recibir peticiones disponemos de las etiquetas @GetMapping, @PostMapping, @PutMapping y @DeleteMapping, para los diferentes tipos de peticiones. En estas anotaciones pondremos la ruta a la que tendrá que hacerse cada petición. Por defecto, estas rutas irán después del dominio. Si queremos añadir una ruta base de la que partan todas las rutas de estos métodos podemos añadirlo en el archivo application.properties:
| Bloque de código |
|---|
server.servlet.context-path=/rest/v1.0 |
Veamos un ejemplo sencillo:
| Bloque de código | ||
|---|---|---|
| ||
package com.example.restservice;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping( "${app.server.path}" )
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@GetMapping("/greeting")
public ResponseEntity<Greeting> greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
Greeting greeting = new Greeting(counter.incrementAndGet(), String.format(template, name));
return new ResponseEntity<>(greeting, HttpStatus.OK);
}
} |
...