【问题标题】:Are "produces" and "consumes" attributes necessary for a Spring Boot Rest Service?Spring Boot Rest Service 是否需要“生产”和“消费”属性?
【发布时间】:2019-02-08 19:52:30
【问题描述】:

我正在使用 Spring Boot 开发 REST 服务。如果我使用响应实体,我的模型对象默认生成 JSON。

在这种情况下,是否需要在每个服务中指定consumesproduces 属性?

【问题讨论】:

  • 不,默认是json。

标签: spring rest spring-boot


【解决方案1】:

根据the documentation

消耗

对于使用请求正文的@WriteOperation (HTTP POST),谓词的消费子句是application/vnd.spring-boot.actuator.v2+json, application/json。对于所有其他操作,consumes 子句是空的。

生产

谓词的produces子句可以由@DeleteOperation@ReadOperation@WriteOperation注解的produces属性决定。该属性是可选的。如果不使用,则自动确定produces子句。

如果操作方法返回voidVoid,则produces 子句为空。如果操作方法返回org.springframework.core.io.Resource,则produce 子句为application/octet-stream。对于所有其他操作,produce 子句是 application/vnd.spring-boot.actuator.v2+json, application/json

所以你默认生成 JSON,除非你返回一个资源,然后你默认生成一个 octet-stream

【讨论】:

  • 引用的文档在 Spring Actuator 部分(因此引用 application/vnd.spring-boot.actuator.v2+json)。我们从哪里知道这通常适用于 Spring REST? (我正在寻找,但我自己还没有找到明确的参考资料)。
猜你喜欢
  • 1970-01-01
  • 2016-06-06
  • 1970-01-01
  • 2018-07-27
  • 2019-06-21
  • 2020-03-09
  • 1970-01-01
  • 1970-01-01
  • 2017-07-13
相关资源
最近更新 更多