...
Para crear nuestros servicios REST debemos seguir las buenas prácticas que están definidas en esta página de la wiki: Buenas prácticas con servicios REST
Controlador REST en Spring Boot
...
| 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<>ResponseEntity.ok(greeting, HttpStatus.OK);
}
} |
Parámetros en la URL
...
| Bloque de código | ||
|---|---|---|
| ||
@GetMapping( "/dniAlumno" )
public ResponseEntity<String> dniAlumno( @RequestHeader( value = "auth-token", required = true ) String tokenCodificado ) {
final Claims claims = jwtTokenUtil.comprobarToken( tokenCodificado );
if(claims == null)
return null;
return new ResponseEntity<>ResponseEntity.ok(alumnoTitulacionRepository.findDni( claims.getSubject() ), HttpStatus.OK);
} |
Datos en el body: @RequestBody
...
| Bloque de código | ||
|---|---|---|
| ||
@PostMapping("/borrarUsuariocrearUsuario")
public void borrarUsuariocrearUsuario(@RequestBody UsuarioDTO usuario) {
usuarioRepo.deletecreate(new Usuario(usuario));
} |
...
| Bloque de código | ||
|---|---|---|
| ||
@GetMapping(value = "/usuarios", params = "login")
public ResponseEntity<UsuarioDTO> usuariosLogin(@RequestParam login) {
// ...
return new ResponseEntity<>ResponseEntity.ok(usuarioDto, HttpStatus.OK);
} |
En el caso de que queramos devolver un error, por ejemplo, un Forbidden porque el usuario que ha solicitado un recurso no tiene acceso, lanzaremos una excepción ResponseStatusException, pues esta nos ofrece más información en la respuesta que se da.
...
Más información sobre las Views aquí.
Cliente REST en Spring Boot
| Advertencia |
|---|
Este apartado queda obsoleto, se manendrá aquí temporalmente. |
| Expandir | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||
Para consumir otro servicio REST desde el propio backend, a falta de realizar más pruebas, la forma que tendremos de hacerlo será utilizando
Después, en la clase en la que vayamos a utilizarlo, sólo tendremos que cargarlo con Autowired:
Para utilizarlo, formamos el URI con
Con Podemos añadir headers con
Los headers los incluiremos en un objeto
En el caso de que sólo queramos pasar los headers,
Para lanzar las peticiones tenemos diferentes opciones. En primer lugar, disponemos de cuatro métodos básicos para hacer GET, POST, PUT, DELETE:
Para las operaciones básicas estos métodos pueden ser útiles, pero como vemos, solo podemos pasar el objeto
Como vemos, estamos utilizando el tipo |