Swagger 在OpenAPI 3.0中使用组件模式作为查询参数是否正确?

Swagger 在OpenAPI 3.0中使用组件模式作为查询参数是否正确?,swagger,openapi,Swagger,Openapi,OpenAPI“组件”部分有“模式”和“参数” 看起来我可以任意编写查询参数。 但是,使用“schemas”部分编写查询参数是否正确 使用schemas部分似乎很方便,因为它可以重复用于响应等 路径: /用户: 获取: 摘要:获取用户 操作ID:获取用户 说明:“” 参数: -模式: $ref:“#/components/schemas/User” in:查询 名称:schemas\u用户 必填项:true -$ref:“#/components/parameters/QueryUser” 响

OpenAPI“组件”部分有“模式”和“参数”

看起来我可以任意编写查询参数。
但是,使用“schemas”部分编写查询参数是否正确

使用schemas部分似乎很方便,因为它可以重复用于响应等

路径:
/用户:
获取:
摘要:获取用户
操作ID:获取用户
说明:“”
参数:
-模式:
$ref:“#/components/schemas/User”
in:查询
名称:schemas\u用户
必填项:true
-$ref:“#/components/parameters/QueryUser”
响应:
'200':
描述:好的
组件:
模式:
用户:
标题:用户
类型:字符串
描述:模型中的用户
参数:
查询者:
名称:查询用户
in:查询
必填项:true
模式:
类型:字符串
description:查询中的用户
“模式”非常有表现力,也可以表示对象

但是,对象不能用作查询字符串


OpenAPI是否建议对查询字符串使用模式?

是的,从#组件/模式引用模式看起来不错。 请参阅下面确认相同的快照。PS:您可以尝试在editor.Swagger.io上粘贴您的Swagger JSON

谢谢您的回复。我知道我可以使用模式,但我想知道我是否应该使用它。模式非常具有表现力,也可以表示对象。但是,对象不能用作查询字符串。OpenAPI是否建议对查询字符串使用模式?嘿,考虑到您的疑问,我认为OpenAPI非常健壮,允许您从/components/schemas引用它。但是将对象表示为查询参数在一般的REST Word本身中没有多大意义,因此您可以考虑在请求正文中添加对象。因此,最好通过$ref或内联定义来表示普通数据类型的数组,或仅表示查询参数的普通数据类型。