Come esporre una risorsa esterna (non gestita tramite un repository) nell'elenco root di risorse di Spring Data REST? Ho definito un controller seguendo lo schema in RestbucksCome aggiungere collegamenti alla risorsa root in Spring Data REST?
10
A
risposta
14
Questo può essere fatto implementando ResourceProcessor<RepositoryLinksResource>
.
seguito frammento di codice aggiunge "/ altri" alla lista radice
@Controller
@ExposesResourceFor(Other.class)
@RequestMapping("/others")
public class CustomRootController implements
ResourceProcessor<RepositoryLinksResource> {
@ResponseBody
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<Resources<Resource<Other>>> listEntities(
Pageable pageable) throws ResourceNotFoundException {
//... do what needs to be done
}
@Override
public RepositoryLinksResource process(RepositoryLinksResource resource) {
resource.add(ControllerLinkBuilder.linkTo(CustomRootController.class).withRel("others"));
return resource;
}
}
dovrebbe aggiungere
{
"rel": "others",
"href": "http://localhost:8080/api/others"
}
al tuo annuncio radice collega
0
Sono stato alla ricerca di una risposta alla stesso problema, ma la chiave è: non ho un controller. Il mio url indica qualcosa creato in un filtro di autenticazione. Ciò che ha funzionato per me è creare un RootController
che non abbia metodi e utilizzarlo per creare collegamenti nell'implementazione ResourceProcessor
.
@RestController
@RequestMapping("/")
public class RootController {}
Quindi il collegamento viene inserito utilizzando il controller vuoto.
@Component
public class AuthLinkProcessor implements ResourceProcessor<RepositoryLinksResource> {
@Override
public RepositoryLinksResource process(RepositoryLinksResource resource) {
resource.add(
linkTo(RootController.class)
.slash("auth/login")
.withRel("auth-login"));
return resource;
}
}
Problemi correlati
- 1. Come aggiungere collegamenti alle proiezioni REST di Spring Data?
- 2. Spring REST Dati Come aggiungere risorse incorporate in linea
- 3. Come si applica una proiezione a una risorsa del metodo di query REST di Spring Data?
- 4. Spring Data Rest - Soft Delete
- 5. Spring Data Rest/Spring Hateoas Custom Controller - PersistentEntityResourceAssembler
- 6. Rappresentazione risorsa REST con collegamenti, compatibile con PUT e GET
- 7. Come esporre il resourceId con Spring Data Rest
- 8. Spring Data Rest - Custom Json Schema/Alps?
- 9. Spring Data REST - Rilevato più collegamenti di associazione con lo stesso tipo di relazione
- 10. Spring Data Rest 2.4 Errore intermittente (ClassCastException)
- 11. Come personalizzare Spring Data REST per utilizzare un percorso multi-segmento per una risorsa repository?
- 12. Spring Boot Rest - Come configurare 404 - risorsa non trovata
- 13. Come configurare il controllo tramite Java Config in Spring Data (e Spring Data Rest)?
- 14. Come disattivare il paging per JpaRepository in spring-data-rest
- 15. Come aggiornare l'oggetto di riferimento in Spring-data rest?
- 16. Come aggiungere l'intestazione di Cache-Control alla risorsa statica in Spring Boot?
- 17. Spring Data Rest - Parametri con valori predefiniti
- 18. Django REST Framework: quando creare una risorsa con collegamenti ipertestuali e una risorsa nidificata? Come postare una risorsa nidificata?
- 19. Mixing Spring MVC + Spring Data Rest produce risposte MVC dispari
- 20. Utilizzo di Spring Security ACL con Spring Data REST
- 21. Come effettuare una ricerca avanzata con Spring Data REST?
- 22. Rails: aggiungere un'azione personalizzata alla risorsa
- 23. Spring Boot Rest Service, come ottenerlo per effettuare il marshalling dei collegamenti come proprietà?
- 24. Eccezione utilizzando Spring Data JPA e QueryDsl tramite REST Controller
- 25. Repository multipli per la stessa entità in Spring Data Rest
- 26. Facoltativamente disabilitare il formato HATEOAS in Spring Data Rest
- 27. Spring Boot Data Rest POST restituisce 204 ma solo SELECTS
- 28. Spring Data REST: sovrascrive il metodo di repository sul controller
- 29. Oracle Data - Come aggiungere anni alla data di
- 30. Come mantenere le relazioni bidirezionali con Spring Data REST e JPA?
come posso fare questo per un collegamento non controller? (in particolare voglio aggiungere il logout di sicurezza di primavera) – xenoterracide
@xenoterracide magari con un '@RequestMapping ("/logout ")' sul controller e poi un '@RequestMapping (metodo = RequestMethod.POST) public logout() {// do logout} 'metodo. Cosa intendi per link non controller? – aycanadal
@aycanadal Sono abbastanza sicuro di averlo capito a un certo punto, ma ho un filtro a cui devo collegarmi perché, la sicurezza di primavera – xenoterracide