- Los métodos que queremos enlazar tienen la anotación
@ResponseBody
- Los parámetros que deben formar parte del path los anotaremos con
@PathVariable
. - Los parámetros que deben formar parte de la query string los anotaremos con
@RequestParam
. - Podemos configurar a qué recursos queremos añadirles enlaces en su
/recursos/search
y relacionarlas con suRecursoController
que tenga los métodos a los que queremos enlazar.
- Filtre el recurso para el que debe añadirse los links (sólo los registrados)
- Recupere todos los métodos del
Controller
asociado a ese recurso - Filtre aquellos marcados con
ResponseBody
- Recupere el link con
linkTo
pasando como argumentos el valor"(" + nombre + ")"
para cadaPathVariable
(se usan paréntesis para evitar el "escape" de las llaves) - Cambiamos los paréntesis por llaves en las variables de la ruta.
- Utilice sólo los nombres de los parámetros
RequestParam
como query params - Use el nombre del método como
rel
ConfiguracionRest
:También incluye un filtro CORS (
CorsFilter
) para permitir cualquier petición y así poder realizar pruebas sin preocuparse de las políticas Cross-Origin por defecto.Cómo usar el bean correctamente
En nuestro repositorio vamos a eliminar el código de la sesión anterior para sustituirlo por esta clase de configuración que añadimos a nuestra aplicación.Ahora personalizamos nuestro bean para los links añadiendo al mapa de controladores para enlazar la entidad como clave (
PartidoConId.class
) y el controlador asociado como valor (PartidoController.class
). De aquí se deduce que lo más simple es poner todos los métodos para una entidad en un único Controller
.Si se quieren añadir otros enlaces aparte de los aporta este bean, se puede crear otro bean del mismo tipo en otra clase de configuración y al final todos los enlaces convivirán en el mismo
/search
.Puedes encontrar el código hasta aquí en su repositorio.
Este punto finaliza nuestro Producto Mínimo Viable (PMV/MVP) y establece la release v1.0.0. En el README del repositorio se pueden ver las instrucciones para ejecutar la API en local.
No hay comentarios:
Publicar un comentario