我正在使用Spring Boot开发REST服务。如果使用响应实体,则默认情况下,我的模型对象会生成JSON。
在这种情况下,是否需要在每个服务中指定consumes
和produces
属性?
最佳答案
根据the documentation:
消耗
对于使用请求正文的@WriteOperation
(HTTP POST
),谓词的消耗子句为application/vnd.spring-boot.actuator.v2+json, application/json
。对于所有其他操作,消耗子句为空。
产生
谓词的Produces子句可以由@DeleteOperation
,@ReadOperation
和@WriteOperation
批注的Produces属性确定。该属性是可选的。如果未使用,则会自动确定produces子句。
如果操作方法返回void
或Void
,则Produces子句为空。如果操作方法返回org.springframework.core.io.Resource
,则produces子句为application/octet-stream
。对于所有其他操作,produces子句为application/vnd.spring-boot.actuator.v2+json, application/json
。
因此,除非您返回资源,否则默认情况下将生成JSON,然后默认情况下将生成八位字节流。