我有以下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中......
感谢致敬 .
1 回答
Http是a request/response protocol . 因此,即使您的操作返回void,仍然存在http响应;即使它的
Content-Length
为0(无效) . 这就是它被建模为MediaType.ALL
(读取任何媒体类型或没有特定媒体类型)的原因