当前位置: 首页 > 知识库问答 >
问题:

如何在openApi/springfox-swagger2中为不同的状态码定义不同的响应模型

闾丘朗
2023-03-14

给定以下带有springfox-swagger2注释的REST方法:

@GetMapping(value = "/access", produces = MediaType.APPLICATION_JSON_VALUE)
@ApiOperation(value = "check access allowed")
@ApiResponses({
        @ApiResponse(code = 200, message = "okay, there you go", response = AccessResponse.class),
        @ApiResponse(code = 204, message = "I got nothing for you", response = Void.class)
})
public ResponseEntity<AccessResponse> access() {

    if (!isAccessEnabled()) {
        return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
    }
    AccessResponse response = new AccessResponse("some data");
    return ResponseEntity.ok(response);
}
    null
"responses":{
  "200":{
    "description":"okay, there you go",
    "schema":{"$ref":"#/definitions/AccessResponse"}
    },
  "204":{
    "description":"I got nothing for you",
    "schema":{"$ref":"#/definitions/AccessResponse"}
    }
}

我是不是漏掉了什么?有没有办法告诉swagger为每个HTTP/OK状态代码呈现两个不同的模型?

共有1个答案

袁俊弼
2023-03-14

我已经更改了方法的返回类型--删除了泛型类型:

public ResponseEntity access()

其结果是更好的(但不是完美的)模型描述:

"204":{
   "description": "I got nothing for you",
   "schema":{"type":"object"}
}
 类似资料:
  • 我有一个服务,它可以基于头有两种不同的主体参数。 例如。对于路径: > 如果使用 ,则 POST 可以将 作为正文参数。 如果使用了,那么POST应该使用一些不同的主体参数来调用函数并返回不同的响应。 关于如何在OpenAPI(Swagger)中体现这一点,有什么建议吗?

  • 在开始之前:我查看了以下链接,但没有一个与我的问题相匹配: Swagger-指定可选对象属性或多个响应 Swagger;根据可选参数指定两个具有相同代码的响应 Swagger-指定可选对象属性或多个响应 因此,我有一个endpoint的OpenAPI 3定义,该endpoint为成功调用返回给定的有效负载(例如,)。但是,对于不成功的调用(例如,),我希望返回完全不同的错误负载。 你可以看到下面的

  • 我使用的API根据成功/失败有不同的json响应。它们不是HTTP错误,而是json主体中的代码。 我添加了一个,但感觉我只是把事情放在一起,忽略了问题。这是一种可接受的或“pythonic”的方式来处理类似的不同响应吗?另外,如果存在状态,我是否正确地使用来跳过该行?

  • 我试图确定查询中的“完整”或“不完整”值,但我需要引用两个不同的列来确定。 例如-我有一个货件有4个事件。在数据库中,我有以下列。 “cs_event_count”与“cs_completed” Event count告诉我事件总数,Completed告诉我这些事件中有多少已经完成。 我希望我的查询显示如下内容 如果“Event Count”值等于“Completed”值,则为“Complete”

  • 我正在将我的一个应用程序转换为Gradle,并希望使用新的构建风味功能,以有一个付费和免费的广告为基础的风味。 我希望只有基于广告的版本依赖于admob SDK。 我的生成文件如下所示: 是否有一种方法可以在免费产品版本中配置依赖项,使其拥有自己的libs文件夹,该文件夹与包含两种版本通用库的主libs文件夹合并? 如果这是可能的,我将如何定义这个文件夹?

  • 问题内容: 当每个字段失去焦点时,我想验证表单中的每个字段,当这种情况发生时,我希望执行以下操作: 1)在该字段的右侧显示一个图像,.gif(表示系统正在检查用户输入) 2)完成后出现另一个.gif(例如,取决于输入内容,例如“ sucess.gif”或“ error.gif”),并在右侧显示一条消息。 我不想使用弹出窗口或类似的东西,用户将失去可用性,我也不想这样做。 我正在尝试做这样的事情,这