linkForSingleResource 如何工作?
How does linkForSingleResource work?
我能理解这段代码找到了 BookController,因为我在 BookController 之前做了 @ExposesResourceFor(Book.class)
,但是它怎么知道要解析到哪个 method/URL?
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") … ) { … }
}
我能理解这段代码找到了 BookController,因为我在 BookController 之前做了 @ExposesResourceFor(Book.class)
,但是它怎么知道要解析到哪个 method/URL?
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") … ) { … }
}