我定义了以下Spring Boot(1.3.1)@RestController
:
@RequestMapping(value = "/blah", method = DELETE)
@ResponseStatus(NO_CONTENT)
public void blah() {...}
并且正在使用assertj-swagger
来验证上面的以下swagger规范:
'/blah':
delete:
由于以下原因,已实施操作的验证(断言)失败:
[Checking 'produces' of 'DELETE' operation of path '/blah']
Expecting null or empty but was:<["*/*"]>
但我无法理解为什么produces
MediaType.ALL
是我们试图用Swagger描述的void
方法时需要的?
任何想法都会受到高度赞赏,似乎无关必须将其添加到我们所有记录的API中......
谢谢和问候。
答案 0 :(得分:1)
Http是a request/response protocol。因此,即使您的操作返回void,仍然存在http响应;即使它的Content-Length
为0(无效)。这就是它被建模为MediaType.ALL
(读取任何媒体类型或没有特定媒体类型)