Swagger:是否可以使操作参数为常量/只读?

eqqqjvef  于 2023-04-11  发布在  其他
关注(0)|答案(3)|浏览(154)

这是我对某个参数的描述:

{
    "name": "myParam",
    "description": "My param description",
    "required": true,
    "paramType": "query",
    "type": "string",
    "defaultValue":"myValue"
}

defaultValue是参数唯一可以拥有的值,那么有没有办法声明它呢?在swagger-ui的上下文中,我需要参数的文本框是只读的。我使用的是swagger 1.2。
谢谢

gxwragnw

gxwragnw1#

正确的声明方式是:

{
    "name": "myParam",
    "description": "My param description",
    "required": true,
    "paramType": "query",
    "type": "string",
    "enum": [ "myValue" ]
}

“enum”属性设置了可能的值。一旦你为它设置了一个值,那就是唯一一个可以使用的,并且在UI中可供用户选择的值。

c7rzv4ha

c7rzv4ha2#

我有点晚了,但使用OpenAPI 3.1你可以做以下事情:

defaultValue:
  type: string
  const:
   - myValue
41ik7eoe

41ik7eoe3#

你也可以使用字符串的'pattern'来避免枚举-这在Swagger中看起来更好:

{
  "openapi": "3.0.0",
  "components": {
    "schemas": {
      "object": {
        "type": "object",
        "required": [
          "myParam"
        ],
        "properties": {
          "myParam": {
            "type": "string",
            "pattern": "onlyAllowedValue$"
          }
        }
      }
    }
  }
}

相关问题