问题 Swagger:是否可以使操作参数恒定/只读?


这是我所拥有的某个参数的描述:

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

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

谢谢


3784
2017-09-25 13:04


起源

为什么要定义无法更改的参数? - fox


答案:


声明这个的正确方法是:

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

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


12
2017-10-16 17:54



感谢回复!当类型为字符串时,这非常有效,但是,在其他情况下会发生什么,例如bool?我想我可以将它声明为值为“true”或“false”的字符串,但如果我从中生成客户端库,它看起来不会很优雅。有任何想法吗? - DeZot
这取决于您使用的Swagger规范版本。在1.2和之前,“enum”仅适用于字符串值。在2.0中,“enum”可用于所有基元,因此您可以将它用于布尔值,数字等。 - Ron