我有一个@restcontroller端点定义为
@GetMapping(value = "/end/point/{id}")
public ResponseEntity<Boolean> endpoint(
@PathVariable("id") @NotBlank @Pattern(regexp ="^[A-Za-z]$") String cdsId){
...
conditions to return boolean
...
}
我希望openapi3文档如下所示。具体来说,我不想要“内容”部分,而是希望能够定义如下响应类型:
"200": {
"description": "OK",
"type": "boolean"
}
但是,使用springdoc/io.swagger.core.v3 apiresponses/apiresponse时,请如下所示:
@ApiResponses(value = {
@ApiResponse(),
@ApiResponse(responseCode = "200", description = "OK" )})
生产
"200": {
"description":"OK",
"content": {
"*/*": {
"schema": {
"type": "boolean"
}
}
}
}
我不希望“内容”部分在所有,因为安全扫描说,我们正在运行它不正确的标签。同时,我希望通过编程来实现这一点,这样我就不必每次从应用程序检索api文档时都手动更改它。apiresponse类型不提供“type”字段,并自动生成“content”。我能在apiresponse类中处理这个问题吗?
1条答案
按热度按时间8fq7wneg1#
什么是openapi的响应对象?
如openapi规范中所述,响应对象可以具有以下属性
description
-关于返回的响应的一些描述。headers
-指定作为响应的一部分返回的任何其他标头。一个例子是set cookie头,可以根据需要随意设置。请注意Content-Type
不是响应头,但被视为rfc-7231第3节中定义的实体头。content
-作为响应的一部分返回的实际响应对象(普通字符串也是对象)。links
-作战联系图。例如,在搜索操作中实现分页时,指向下一页/上一页/第一页/最后一页的链接。更详细地了解内容属性
这家酒店有一张Map
String
(表示响应代码)和mediatype对象(表示响应主体)。在上面的例子中
200
以及400
表示响应代码。当我们看到content
对于200
响应,它告诉响应可以是xml格式,也可以是Content-Type
请求的标头。对于400
,一个空内容({}
)意味着不会返回响应主体。在每个内容类型下
schema
描述将为给定响应代码返回的对象。对于200
它告诉我们将返回一个数组,该数组将由以下类型的项组成Pet
.现在,回答你的问题。
您不能像在下面的示例中所说的那样定义响应
这是严格违反规范的,当您在swagger编辑器中尝试此操作时,它将指示由于无效模式而导致的错误。
等级库编辑器中显示的错误如下所示。
swagger ui中的错误如下所示