在Swagger 2.0或3.0中可以同时使用path参数和查询参数吗?例如,给定以下基本URL和路径参数:
/api.example.com/{path}
是否可以添加查询参数,例如:
/api.example.com/{path}?<query_param>=<query_value>
我的用例是DELETE操作:{path}
引用要删除的对象ID,我想添加一个标志,以便请求者可以指定是否尝试强制删除通常会删除的对象。不可删除(请考虑使用rm -f
在Linux中删除非空目录)。然后,URL看起来像:
/api.example.com/{objectID123} (regular delete; will fail if object is non-empty)
/api.example.com/{objectID123}?forceDelete=True (force delete)
我知道我可以将对象ID和forceDelete标志都指定为查询参数,但这意味着仅根据查询参数重写DELETE操作,而其他操作均基于路径参数;我希望一切保持一致。
我阅读了文档,但是没有找到明确解决的问题。请注意,如果有我不知道的最佳实践,我愿意采用另一种方式来处理DELETE操作。
答案 0 :(得分:0)
是的,同一操作中可以有不同的参数类型。
openapi: 3.0.2
...
paths:
/api.example.com/{objectID}:
delete:
parameters:
- in: path
name: objectID
required: true
schema:
type: integer
- in: query
name: forceDelete
schema:
type: boolean
default: false