Swagger docs - 单个 http 响应的多个错误代码

Posted

技术标签:

【中文标题】Swagger docs - 单个 http 响应的多个错误代码【英文标题】:Swagger docs - multiple error codes for a single http response 【发布时间】:2020-11-17 05:55:54 【问题描述】:

我正在尝试记录一个始终返回自定义响应代码和相关描述的模型。对于单个 HTTP 响应代码,可能有多个自定义响应代码。例如,400 响应可能包括:

+===========+======+=============+
| HTTP Code | Code | Description |
+===========+======+=============+
|       400 |    1 | Error 1     |
+-----------+------+-------------+
|       400 |    2 | Error 2     |
+-----------+------+-------------+
|       400 |    3 | Error 3     |
+-----------+------+-------------+

我可以记录 400 状态返回具有“代码”和“描述”的“错误”对象。但如果可能的话,我想在文档中包含所有自定义状态代码。可能吗?如果是这样,我该怎么做?

【问题讨论】:

你在找这个吗?看看批准的答案以及***.com/questions/36576447/… 我不认为这是我正在寻找的东西,除非我必须为每个自定义状态代码记录单独的模式。我基本上需要为每个http状态码指定多个示例 在 Swagger yaml 中使用 openapi 3.0 让我使用多个示例,几乎可以让我做我想做的事,而无需大量额外工作。唯一的问题是……我所有的回复都是 XML 格式的。为了提供无法用 JSON 表示的多个示例,您必须将 XML 放入字符串文字中。我真的很想避免这样做。 【参考方案1】:

对于现在面临这个问题的任何人,这是我能够解决的方法:

              '422':
                description: 'Unprocessable Entity'
                content:
                    application/json:
                        schema:
                          oneOf:
                            - $ref: '#/components/schemas/SchemaForErrror1'
                            - $ref: '#/components/schemas/SchemaForErrror2'

                        examples:
                          Error1:
                            $ref: '#/components/examples/ExampleForError1'
                          Error2:
                            $ref: '#/components/examples/ExampleForError2'

【讨论】:

以上是关于Swagger docs - 单个 http 响应的多个错误代码的主要内容,如果未能解决你的问题,请参考以下文章

swagger-doc 让你high起来的swagger

swagger-doc 让你high起来的swagger

swagger-doc 让你high起来的swagger

Swagger 继承与组合

Springfox swagger 2 不适用于 Spring Boot 1.5:在 /v2/api-docs 中找不到 HTTP 404

如何在 OpenAPI (Swagger) 中为相同的 HTTP 状态代码定义不同的响应?