linkForSingleResource如何工作?

时间:2017-05-02 11:38:45

标签: spring hateoas spring-hateoas

我可以理解这段代码找到了BookController,因为我在BookController之前做@ExposesResourceFor(Book.class)但是它如何知道要解析哪个方法/ URL?

entityLinks.linkForSingleResource(book).toUri();

这将解析为127.0.0.1:8080/books/5

它只是添加/ id到url并且根本不检查方法吗?

1 个答案:

答案 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") … ) { … }  

}