我在为OpenAPI 3中的响应指定XML示例时遇到困难

时间:2019-02-27 21:34:04

标签: swagger-ui openapi

我有一个用于OpenAPI 3的JSON文件,其中包含以下内容:

            "trait_hasProjectResponse_200": {
                "description": "",
                "content": {
                    "application/xml": {
                        "example": {
                            "value" : "<project><foo>1</foo><bar>2</bar></project>"
                        }
                    }
                }
            },

这会在当前swagger-ui上显示以下内容:

enter image description here

如何在OpenAPI 3规范中为参数或响应指定XML示例?我已经浏览了文档,并且似乎对JSON感到很沮丧。我需要做什么来生成生成OpenAPI 3 JSON文件的输出。

我也曾尝试使用externalValue并有类似的困难。

1 个答案:

答案 0 :(得分:1)

value删除example键(value仅用于多个examples)。

"example": "<project><foo>1</foo><bar>2</bar></project>"


另外,您可以为响应定义一个schema,而Swagger UI将基于schema生成示例。在您的示例中,模式是一个project对象,其中包含foo数组。您可以指定[1, 2]作为foo数组的示例值:

  "components": {
    "responses": {
      "trait_hasProjectResponse_200": {
        "description": "",
        "content": {
          "application/xml": {
            "schema": {
              "$ref": "#/components/schemas/project"
            }
          }
        }
      }
    },
    "schemas": {
      "project": {
        "type": "object",
        "properties": {
          "foo": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "xml": {
              "wrapped": false
            },
            "example": [1, 2]
          }
        }
      }
    }
  }

这将为您提供:

XML response example generated by Swagger UI based on the response schema