1

@RestController定义了以下 Spring Boot (1.3.1):

@RequestMapping(value = "/blah", method = DELETE)
@ResponseStatus(NO_CONTENT)
public void blah() {...}

并使用assertj-swagger以下招摇规范验证上述内容:

'/blah':
  delete:

已实施操作的验证(断言)失败,原因如下:

[Checking 'produces' of 'DELETE' operation of path '/blah'] 
 Expecting null or empty but was:<["*/*"]>

但我不明白为什么produces MediaType.ALL当它是void我们试图用 Swagger 描述的方法时需要 a ?

任何想法将不胜感激,似乎必须将其添加到我们所有记录的 API 中......

谢谢并恭祝安康。

4

1 回答 1

1

Http 是一个请求/响应协议。所以即使你的操作返回了一个void,仍然有一个http响应;即使它的 aContent-Length为 0(无效)。这就是它被建模为MediaType.ALL(读取任何媒体类型或没有特定媒体类型)的原因

于 2016-09-21T03:23:40.940 回答