如何在OpenAPI(Swagger)中指定默认的XML元素文本?

时间:2019-01-12 23:52:00

标签: swagger swagger-2.0 openapi

我正在为以下XML有效负载构建一个OpenAPI(Swagger)2.0定义,以在Swagger UI中使用:

<addressElement>
    <key type="RECORD_ID" item="3">Enter value here</key>
</addressElement>

我在解决如何显示元素key的默认值“在此处输入值”时遇到问题。这个默认值在OpenAPI定义中的什么位置?我的定义如下:

    "definitions": {
     "addressElement": {
      "type": "object",
      "title": "Address Element",
      "properties": {
        "key": {
          "type": "object",
          "properties": {
          "type":{
            "type": "string",
            "example": "RECORD_ID",
            "xml":{
              "attribute": true
            }
          },
          "item":{
            "type": "integer",
            "format": "int64",
            "example": "3",
            "xml":{
              "attribute": true
            }
          }
        }
      },
    },
    "xml": {
      "name": "addressElement"
    }
  }
 }

1 个答案:

答案 0 :(得分:0)

当前这是不可能的,因为OpenAPI无法使用诸如这样的属性来表示XML元素

<key type="RECORD_ID" item="3">Enter value here</key>

只能为对象定义属性

<obj attr="value">
  <elem>Some text</elem>
</obj>

但不适用于简单的<elem>text</elem>元素。

这里有一个关于此限制的公开问题:
How to represent XML elements with attributes

也就是说,OpenAPI规范维护者正在考虑使用alternative data modeling schemas(例如XSD Schema)的选项,因此OpenAPI的未来版本可能会支持您的用例。