我可以理解這段代碼找到BookController,因爲我在BookController之前做了@ExposesResourceFor(Book.class)
,但它怎麼知道要解析哪個方法/ URL?linkForSingleResource如何工作?
entityLinks.linkForSingleResource(book).toUri();
,這會分解成127.0.0.1:8080/books/5
是否只是添加/ ID的URL和不檢查在所有的方法?
我可以理解這段代碼找到BookController,因爲我在BookController之前做了@ExposesResourceFor(Book.class)
,但它怎麼知道要解析哪個方法/ URL?linkForSingleResource如何工作?
entityLinks.linkForSingleResource(book).toUri();
,這會分解成127.0.0.1:8080/books/5
是否只是添加/ ID的URL和不檢查在所有的方法?
Spring HATEOAS文檔有一個chapter on EntityLinks,它顯示了一個示例。
documentation on ControllerEntityLinks包含有關預期URI結構的更多詳細信息。對於集合需要一個空映射,對於單個資源需要一個具有id路徑變量的映射。
@Controller
@ExposesResourceFor(Order.class)
@RequestMapping("/orders")
class OrderController {
//The collection resource
@RequestMapping
ResponseEntity orders(…) { … }
//Individual resources
@RequestMapping("/{id}")
ResponseEntity order(@PathVariable("id") …) { … }
}
謝謝,原來我不知道如何閱讀Java文檔,這個實現和接口類是分開的。 – EralpB
嗯,事實上,信息可用,並不意味着很容易發現和理解,特別是對人的新的課題。所以我決定寫一個正確的答案並刪除我的評論。歡呼聲和+1 – zeroflagL