2017-05-02 6 views
2

Ich kann verstehen, dieser Code findet den BookController, weil ich @ExposesResourceFor(Book.class) vor BookController tun, aber woher weiß es, welche Methode/URL zu lösen?Wie funktioniert linkForSingleResource?

entityLinks.linkForSingleResource(book).toUri(); 

und dies löst sich in 127.0.0.1:8080/books/5

Ist es nur hinzufügen/id auf die URL und überprüft nicht, Methoden überhaupt?

+0

Nun, die Tatsache, dass Informationen verfügbar ist, bedeutet nicht, dass es einfach ist, zu entdecken oder zu verstehen, insbesondere für Menschen in ein neues Thema. Also beschloss ich, eine richtige Antwort zu schreiben und entfernte meine Kommentare. Prost und +1 – zeroflagL

Antwort

2

Die Spring HATEOAS-Dokumentation enthält eine chapter on EntityLinks, die ein Beispiel zeigt.

Die documentation on ControllerEntityLinks enthält weitere Details über die erwartete URI-Struktur. Es muss eine leere Zuordnung für die Sammlung und eine Zuordnung mit einer ID-Pfadvariable für einzelne Ressourcen geben.

@Controller 
@ExposesResourceFor(Order.class) 
@RequestMapping("/orders") 
class OrderController { 

    //The collection resource 
    @RequestMapping 
    ResponseEntity orders(…) { … } 

    //Individual resources 
    @RequestMapping("/{id}") 
    ResponseEntity order(@PathVariable("id") …) { … } 

}

+0

Danke, stellt sich heraus, ich wusste nicht, wie Java-Dokumentation mit dieser Implementierung und Interface-Klassen zu lesen, die separat sind. – EralpB