我可以理解这段代码找到了BookController,因为我在BookController之前做@ExposesResourceFor(Book.class)
但是它如何知道要解析哪个方法/ URL?
entityLinks.linkForSingleResource(book).toUri();
这将解析为127.0.0.1:8080/books/5
它只是添加/ id到url并且根本不检查方法吗?
答案 0 :(得分:2)
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") … ) { … }
}