我们的API有这样的endpoint,通过合并这两组参数,同时支持来自< code>query和< code>body的参数。
例如:
/foo?param1=value1
body: {
param2=value2
}
生成的参数集将包含两个,param1
和param2
。
此endpoint可以用作:
/foo?param1=value1¶m2=value2
或
/foo
body: {
param1=value1,
param2=value2
}
有没有办法在Swagger中指定这种“双重性”?
UPD
我想我应该将参数定义为:body
和查询
in:
- body
- query
需要同时定义查询参数和正文参数,但将它们全部标记为可选。使用操作说明
说明客户端可以在查询字符串或正文中发送参数。
swagger: '2.0'
...
paths:
/foo:
post:
consumes:
- application/json
parameters:
- in: query
name: param1
type: string
required: false
- in: query
name: param2
type: string
required: false
- in: body
name: body
required: false
schema:
type: object
properties:
param1:
type: string
param2:
type: string
使用OpenAPI 3.0会更好一些,因为您可以为查询字符串和请求正文重用相同的< code>schema:
openapi: 3.0.0
...
paths:
/foo:
post:
parameters:
# This expands into ?param1=value1¶m2=value2&...
- in: query
name: parameters
required: false
schema:
$ref: '#/components/schemas/Parameters'
style: form
explode: true
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/Parameters'
responses:
'200':
description: OK
components:
schemas:
Parameters:
type: object
properties:
param1:
type: string
param2:
type: string
Swagger UI用户注意:从UI v. 3.11.0开始,似乎还不支持将对象序列化为查询字符串。
我刚开始招摇。目前,我使用的是swagger ui v2.1.4版。我的API由查询参数组成。其中一个参数接受JSON主体。我想在文本区显示这个参数。目前,它显示在输入标记中。此外,我希望在该文本区域下方显示参数内容类型。请帮我怎么做?
我正在尝试正确定义 OpenAPI 规范,以便从该规范生成 api 客户端。我已经解决了一个问题,即我们有一个复杂的查询对象,其中包含嵌套对象和对象数组,用于获取 GET 路由。 让我们以这些类为例。 和一个带有@Query decorator的get请求。 我得到的是。 我还尝试通过添加@ApiQuery装饰器来定义查询参数,它几乎可以工作。 - 但是现在我正在将重复的查询定义混入一个。有没有办
我有一个API,它接受查询参数作为对象。我用这个来添加多个过滤器来过滤结果。 当我从 swagger 点击请求时,我在控制器中的过滤器对象为空。 是POJO类。它被用作,在控制器中,它是null。 招摇时,显示如下 当试图从userFilter访问任何字段时,对象未被构造并在控制器类中获取NullPointerException。
我在尝试格式化这个OpenApI(Swagger) Json文件时遇到了挑战。当我试图与https://editor.swagger.io/,确认时,我得到了错误。 $ref值必须是符合 RFC3986 的百分比编码 URI 当我将文件中架构的$ref属性从$ ref:' #/definitions/GetResponse[List[currency model]]'更改为$ ref:%/defi
问题内容: 我试图使用sqlalchemy执行原始sql查询,想知道什么是“正确”的方法。 我的查询如下(目前): 我不喜欢的是字符串格式和缺少任何参数处理(在music_volume中用引号引起来的:-D)。 我试图遵循以下答案: 如何在SQLAlchemy- flask应用程序中执行原始SQL 应用我阅读的内容后,我的代码段如下所示: 但是我收到错误,指出mv和ml无法识别参数。 如果我将代码