Mit Federdaten REST habe ich eine ProjectRepository
ausgesetzt, die Projekte unterstützt und CRUD-Operationen auf ihnen ausführen. Wenn ich zu http://localhost:8080/projects/
gehe, bekomme ich die Liste der Projekte, wie ich es erwarte.Verfügbarmachen des Links auf Collection Entity im Frühjahr Daten REST
Was ich versuche, ist eine benutzerdefinierte Aktion zum _links
Abschnitt der JSON-Antwort für die Project Collection hinzufügen.
Zum Beispiel würde ich den Anruf an http://localhost:8080/projects/
mag so etwas wie dies zurück:
{
"_links" : {
"self" : {
"href" : "http://localhost:8080/projects/{?page,size,sort}",
"templated" : true
},
"search" : {
"href" : "http://localhost:8080/projects/search"
},
"customAction" : {
"href" : "http://localhost:8080/projects/customAction"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
Wo customAction
in einigen Controller definiert ist.
Ich habe versucht, die folgende Klasse zu erstellen:
public class ProjectCollectionResourceProcessor implements ResourceProcessor<Resource<Collection<Project>>> {
@Override
public Resource<Collection<Project>> process(Resource<Collection<Project>> listResource) {
// code to add the links to customAction here
return listResource;
}
}
und das Hinzufügen Hinzufügen des folgenden Bean meine Anwendungen Konfiguration:
@Bean
public ProjectCollectionResourceProcessor projectCollectionResourceProcessor() {
return new ProjectCollectionResourceProcessor();
}
Aber process(...)
nicht immer scheint genannt werden. Was ist der richtige Weg, Links zu Sammlungen von Ressourcen hinzuzufügen?
Siehe auch diese Frage: http://stackoverflow.com/q/40156413 –