我在一个REST服务中工作,该服务是由Spring Boot的,到目前为止,它是使用springfox-swagger2:2.7.0(首先实现)记录的。我添加的最后一个操作如下:
@ApiOperation(value = "whatever")
@ApiResponses({
@ApiResponse(code = HttpURLConnection.HTTP_NO_CONTENT, message = "Returns empty content when succeeds"),
@ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = "You can't do that.")
})
@CrossOrigin
@PreAuthorize("hasAuthority('USER_ACCESS')")
@RequestMapping(value = "/foo", method = POST, consumes = APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.NO_CONTENT)
public ResponseEntity postFoo(
@RequestBody
FooRequestBody requestBody) {
if (someMethodReturnsTrue()) {
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
} else {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
}
}
现在,问题是无论如何,生成的斯瓦格定义最终看起来像这样:
"responses": {
"204": {
"description": "Returns empty content when succeeds",
"schema": {
"$ref": "#/definitions/ResponseEntity"
}
},
"403": {
"description": "You can't do that."
}
}
如果这个操作不返回任何内容,我理解204响应应该没有模式
字段(像另一个字段一样)。
我尝试在@ApiParam注释中指定响应=Void.class
(如其他线程中建议的),但没有任何乐趣(因为它是默认值,所以无法与不指定它区分开来)。
我还尝试了在我的Docket bean中设置GenericModelSubures(响应ntity.class)
,但没有任何效果。
我知道,如果someMethodReturnsTrue()
确实返回false
,我可以返回void
并抛出异常,而不是返回ResponseEntity
。然后,@ExceptionHandler
方法可以将该异常转换为403状态代码。
我认为这是大材小用,我认为我不应该改变我的实现来修复我的留档。这就是为什么我问,有没有办法告诉Springfox忽略那个特定方法的返回值,并将其视为返回了val
?
谢谢。
加:
@ApiResponse(code = 204, response = void.class, message = "No Content")
到您的@Api响应({...})
注释。重要的是使用void.class
代替Void.class
。所以它与默认值不同,您仍然可以使用响应实体
作为返回类型。
找到了解决方法,因为@Apiop的默认行为是返回方法的返回类型,所以对于每个状态,都会返回方法的返回类型。如果要发送空响应,请写
@ApiResponse(code = 204, message = "No User found for that Id",response = Object.class)
在SwaggerConfig中写道
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2)
.useDefaultResponseMessages(false)
.directModelSubstitute(Object.class, java.lang.Void.class);
}
所以每当一个物体。类返回时,swagger将自动将其转换为Void。班
我想删除MVC中的http响应头。 HTTP/1.1 404找不到缓存-控件:私有内容-类型:text/html;charst=UTF-8服务器:Microsoft-IIS/8.0X-Powered-by:ASP.NET日期:Mon,23 Feb 2015 12:43:58 GMT内容-长度:4898连接:Keep-Alive 我使用以下代码删除连接、X-Powered-By、Server、Cac
我想从(RubyonRails)响应中删除一些头文件 报头响应: HTTP/1.1 200正常 日期:2013年6月6日星期四14:42:26 GMT 连接:保持活动状态 X运行时间:0.01900 内容类型:文本/纯文本;字符集=utf-8 缓存控制:专用,最大年龄=0,必须重新验证 服务器:WEBrick/1.3.1(Ruby/1.8.7/2012-10-12) 内容长度:281 Etag:“
问题内容: 在将文件作为对REST请求的响应返回后,处理删除文件的最佳方法是什么? 我有一个端点,可根据请求创建文件并在响应中返回它。发送响应后,就不再需要该文件,可以/应该将其删除。 我想我可以创建一个tmp文件,但是我本来以为有一种更优雅的机制可以实现这一目标。该文件可能很大,因此我无法将其加载到内存中。 问题答案: 有一个 更优雅的解决方案 ,不写文件,只需直接写入实例中包含的输出流即可。
主要内容:验证删除结果其他开发人员在更新他的本地存储库后,在目录中找到一个文件。查看提交消息后,了解到文件是由添加的。 现在,假设要对上面的项目中代码结构进行重构,代码文件:module.py 已经不再使用了,要将它删除,那么应该怎么做?请参考以下命令 - 验证删除结果 在另外一台电脑上,执行以下命令更新当前工作区,查看 目录中的文件是否还存在?
嗨,我是ElasticSearch的新手,我正在努力从ElasticSearch的响应中删除所有额外字段。请参见以下回复: 上面你可以看到响应中有一些附加字段,如_index、_type、_score、max_score等。我按照ElasticSearchresponse_filtering指南删除了这些字段,但对我不起作用。我还将filter_path参数传递给请求0.0.0.0:5000/v4
命令用于从数据库和不同模式中删除表。参考以下步骤: 假设要从模式 db2inst1 中删除表。 可以看到该表在列表中可用,然后点击Execute SQL ,如下所示: 可以看到,表已经被删除了。如下图所示: