是否可以在 Swagger 中定义多种类型的输入参数?
示例:我有一个使用URL < code > http://localhost/tasks/{ taskId } 处理资源的API。但是每个任务都包含整数id和字符串uuid。我希望允许用户通过id或uuid来寻址资源,这样< code > http://localhost/tasks/123 和< code > http://localhost/tasks/51 F12 DBC-02e 7-41 a6-ab81-2381 caea 0176 URL都是有效。
但是,关于招摇的文件(https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#parameter-object)参数对象只能有一种类型
类型:必需的。参数的类型。由于参数不在请求正文中,因此仅限于简单类型(即不是对象)。值必须是“字符串”、“数字”、“整数”、“布尔”、“数组”或“文件”之一。
那么,如何将输入路径参数描述为字符串/整数呢?
这可以在OpenAPI 3.0中使用oneOf
实现:
openapi: 3.0.0
...
paths:
/tasks/{taskId}:
parameters:
- in: path
name: taskId
required: true
schema:
oneOf:
- type: integer
example: 123
- type: string
format: uuid
example: 51f12dbc-02e7-41a6-ab81-2381caea0176
无法在 Swagger 规范中定义属于多个类型的参数。
在您的情况下,我认为您可以使用字符串来解决问题,它可以表示路径参数中的字符串(例如“51f12dbc-02e7-41a6-ab81-2381caea0176”)和整数(例如“123”),并且服务器应该正确接收数据。
问题内容: 我想了解参数多态性(例如Java / Scala / C ++语言中的通用类/函数的多态性)与Haskell类型系统中的“即席”多态性之间的主要区别。我熟悉第一种语言,但是我从未与Haskell合作。 更确切地说: 例如Java中的类型推断算法与Haskell中的类型推断有何不同? 请给我举一个例子,这种情况可以用Java / Scala编写但不能用Haskell编写(根据这些平台的模
我试图在c#中创建一个参数多态性函数: 我想让T成为类型变量。但是我得到了一个关于类的错误,没有找到T。 有人知道如何解决这个问题吗? 谢谢。
我想在我的Swagger-ui界面上修改数据类型下的示例值。目前它包含以下默认值(由Swagger生成): 我想指定实数值,而不是“空”值。PS:我用带注释的spring boot:@ API operation,...
在我的Zend应用程序中,我正在为移动应用程序编写一个小API。为了方便移动开发者,我使用了Swagger。到目前为止,除了一个GET请求外,一切正常。 当我呼叫/user/messages/{sessionToken}时?numMessages={numMessages} 有人知道我的错误吗? 欢迎任何帮助。 诚挚的问候 罗特曼 更新:按照建议,我将两个参数类型都更改为“查询”并更改了路径: 但
我如何在从下面的API生成的swagger中定义属性的默认值? Swashbuckle生成OrderDirection作为所需参数。我希望它是可选的,并向客户机指示默认值(不确定swagger是否支持此选项)。 我不喜欢使属性类型为空。还有其他选择吗?理想情况下使用内置类... 我用的是虚张声势的皮带扣。AspNetCore-https://docs.microsoft.com/en-us/asp
这是我的输入: 它说: 详细资料 我到底做错了什么?