spring - linkForSingleResource 如何工作?

标签 spring hateoas spring-hateoas

我可以理解这段代码找到了 BookController,因为我在 BookController 之前执行了 @ExposesResourceFor(Book.class) 但它如何知道要解析为哪个方法/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") … ) { … }  

}

关于spring - linkForSingleResource 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43736918/

相关文章:

php - HATEOAS header 作为字符串

java - Spring Data REST 和 IdClass - 不兼容?

java - 没有可用的 'org.springframework.data.rest.core.util.Java8PluginRegistry' 类型的合格 bean

Spring @Procedure 和 List 作为返回

Spring:如何向静态字段注入(inject)值?

Java Unirest 禁用证书

rest - CQRS 和 REST HATEOAS 不匹配

带有 HATEOAS REST 服务器的 Angular 4 HttpClient

json - 通过 RestTemplate 将 POST 和 PUT 发送到 Spring Data Rest Api

java - 通过 API 处理大数据以进行可视化