如何在 Spring 数据剩余中使用内容协商?

How to Use Content Negotiation in Spring Data Rest?

我正在尝试通过 Rest Api 以不同格式(xml、json、rdf、jsonld)公开我的数据,我正在使用 Spring-Data-Rest-Framework 并且我知道在控制器中使用@RequestMapping 是可行的,但是在 Spring Data Rest 中我只有一个实体和一个使用不支持 @RepositoryRestResource 符号的存储库 @ RequestMapping 表示法。

有人可以向我解释一下如何使用 Spring Data Rest 以不同的格式公开我的数据吗?

我想在 URL 末尾指定格式,例如(?format=json 或 ?format=xml)

http://docs.spring.io/spring-data/rest/docs/current/reference/html/#representations.mapping

Currently, only JSON representations are supported. Other representation types can be supported in the future by adding an appropriate converter and updating the controller methods with the appropriate content-type.

您必须为 XML 或其他类型构建自己的转换器。定义内容类型的标准方法也在 Accept header 中。如果你想使用覆盖,那么你需要添加一个过滤器来读取查询参数并设置 header.