Ich habe einen benutzerdefinierten Ruhe-Controller erstellt und ich kann auf die API zugreifen und das Ergebnis von der Ressource erhalten, das Problem ist, es erscheint nicht in der HAL Browser .. wie diese benutzerdefinierte Methode im HAL Browser verfügbar gemacht wird? Danke ...Spring Data Rest: So stellen Sie benutzerdefinierte Ruhe-Controller-Methode im HAL-Browser
@RepositoryRestController
public class RevisionController {
protected static final Logger LOG = LoggerFactory
.getLogger(RevisionController.class);
private final DisciplineRepository repository;
Function<Revision<Integer, Discipline>, Discipline> functionDiscipline = new Function<Revision<Integer, Discipline>, Discipline>() {
@Override
public Discipline apply(Revision<Integer, Discipline> input) {
return (Discipline) input.getEntity();
}
};
@Inject
public RevisionController(DisciplineRepository repository) {
this.repository = repository;
}
@RequestMapping(method = RequestMethod.GET, value = "/disciplines/search/{id}/revisions")
public @ResponseBody ResponseEntity<?> getRevisions(
@PathVariable("id") Integer id) {
Revisions<Integer, Discipline> revisions = repository.findRevisions(id);
List<Discipline> disciplines = Lists.transform(revisions.getContent(),
functionDiscipline);
Resources<Discipline> resources = new Resources<Discipline>(disciplines);
resources.add(linkTo(
methodOn(RevisionController.class).getRevisions(id))
.withSelfRel());
return ResponseEntity.ok(resources);
}
}
Ich versuche das, und es scheitert für mich mit 'java.lang.IllegalArgumentException: 'uriTemplate' darf nicht null sein. (Ihr Code schien ein close-paren nach 'getRevisions()' zu fehlen.) –
Danke Eric, ich habe den Code geändert. Was Ihr Problem betrifft - könnten Sie einen vollständigeren Stack-Trace veröffentlichen? Es ist möglich, dass Sie das beheben können, indem Sie Ihre benutzerdefinierte Controller-Klasse die ResourceProcessor-Schnittstelle anstelle einer eigenständigen Klasse implementieren - ein paar Gerüchte darüber an anderer Stelle (https://stackoverflow.com/questions/38548834/spring-hateoas- Ausnahme beim Erstellen eines neuen Links. –
Nun, jetzt bin ich immer 'java.util.NoSuchElementException: Arraylist: 854 Kollektionen: 1042 ControllerLinkBuilderFactory: 139 [feder hateoas] ControllerLinkBuilder: 172 RootResourceProcessor: 22)' ', das hat resource.add (linkTo (methodOn (MeetupController.class, 2L, 3L, 2d, 2d, null, null) .finalize (2L, 3L, 2d, 2d, null, null)). withRel ("Meetups")); '(Stack abgeschnitten auf Fit in Kommentar) –