首页 文章

void操作需要在assertj-swagger中使用'produces' swagger定义

提问于
浏览
1

我有以下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 回答

  • 1

    Http是a request/response protocol . 因此,即使您的操作返回void,仍然存在http响应;即使它的 Content-Length 为0(无效) . 这就是它被建模为 MediaType.ALL (读取任何媒体类型或没有特定媒体类型)的原因

相关问题