SwashBuckle不会产生兼容swagger 2.0`的swagger.json

问题描述 投票:0回答:1

我们正在使用SwashBuckle 5.0,并尝试生成swagger doc 2.0。显然,它确实产生了swagger.json,但并不完全符合swagger 2.0规范。问题特别是围绕它如何枚举枚举的:

name: prop-name
description: something
type: array
items:
    $ref: '#/definitions/mytype'

应该在的地方:

name: prop-name
description: something
type: array
items:
  type: string
  enum:
    - Item1

因为它是100%宽幅2.0规范。所以,总而言之,SwashBuckle为我们生成了一个swagger.json,而不是100%宽幅2.0的抱怨。我们通过说SerializeAsV2 = true

来强制我们的配置使用V2。

我们还考虑了升级到OAS 3.0的决定,由于所有客户都必须进行更改,因此暂时不这样做,这是一项巨大的努力。因此,我们将重新尝试弄清楚SwashBuckle如何产生swagger.json(即100%swagger 2.0投诉)?我只想看看在我向SwashBuckle团队提交错误之前是否需要更改配置。

有什么建议吗?

swagger swagger-ui swagger-2.0 swashbuckle swashbuckle.aspnetcore
1个回答
0
投票

我首先在http://editor.swagger.io上快速测试了您的模式,但没有收到任何错误...

以下是我尝试重现您的代码的尝试:https://github.com/heldersepu/csharp-proj/blob/master/WebApi_NetCore/WebApi_NetCore/Controllers/ErrorController.cs#L19-L42

        [HttpPost]
        public List<MonthEnum> Enum(string id)
        {
            var l = new List<MonthEnum>();
            l.Add(MonthEnum.July);
            l.Add(MonthEnum.August);
            return l;
        }

这给我们:https://raw.githubusercontent.com/heldersepu/hs-scripts/master/swagger/swagger_enum.json

    "/api/Error": {
        "post": {
          "tags": [
            "Error"
          ],
          ...
          "responses": {
            "200": {
              "description": "Success",
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/MonthEnum"
                }
              }
            }
          }
        }
      },
      ...
    },
    "definitions": {
      ...
      "MonthEnum": {
        "format": "int32",
        "enum": [
          0,
          1,
          ...
        ],
        "type": "integer"
      }
    }

Swagger用户界面说这是有效的:http://petstore.swagger.io/?url=https://raw.githubusercontent.com/heldersepu/hs-scripts/master/swagger/swagger_enum.json

验证器没有任何错误:https://validator.swagger.io/validator/debug?url=https%3A%2F%2Fraw.githubusercontent.com%2Fheldersepu%2Fhs-scripts%2Fmaster%2Fswagger%2Fswagger_enum.json

也许您的摇摇欲坠的模式有其他问题

© www.soinside.com 2019 - 2024. All rights reserved.