Swagger 如何使用自定义delimeter序列化查询对象
我有yaml文件:Swagger 如何使用自定义delimeter序列化查询对象,swagger,swagger-ui,openapi,Swagger,Swagger Ui,Openapi,我有yaml文件: openapi: 3.0.1 info: title: My API version: v1 paths: # /users;id=3;id=4?metadata=true /users: get: parameters: - in: query name: offset schema: type: integer description:
openapi: 3.0.1
info:
title: My API
version: v1
paths:
# /users;id=3;id=4?metadata=true
/users:
get:
parameters:
- in: query
name: offset
schema:
type: integer
description: The number of items to skip before starting to collect the result set
- in: query
name: limit
schema:
type: integer
description: The numbers of items to return
- in: query
name: origin
style: form
explode: false
schema:
type: object
properties:
city:
type: string
zip:
type: string
responses:
'200':
description: A list of users
当我在中单击“执行”时,生成的旋度如下所示:
curl -X GET "https://editor.swagger.io/users?offset=2&limit=12&origin=city,atlanta,zip,303" -H "accept: */*"
curl -X GET "https://editor.swagger.io/users?offset=2&limit=12&origin=city:atlanta|zip:303" -H "accept: */*"
但是,我需要这样:
curl -X GET "https://editor.swagger.io/users?offset=2&limit=12&origin=city,atlanta,zip,303" -H "accept: */*"
curl -X GET "https://editor.swagger.io/users?offset=2&limit=12&origin=city:atlanta|zip:303" -H "accept: */*"
有可能这样做吗?我在文档中找不到有关设置自定义测厚仪的任何信息。简短回答:否 您的特定用例未包含在中,它们遵循-如果您想要设计一个广为接受的web api,遵循标准是一个好主意 您指定了
explode:false
和style:form
。
当您打开explode:true
时,您将得到以下结果:
city=atlanta&zip=303
当您指定样式:deepObject
时,您将得到:
origin[city]=atlanta&origin[zip]=303
spaceDelimited
和pipeDelimited
样式不适用于对象
无模式工作
您当然可以在没有架构的情况下工作,并定义类型为string
的origin
查询参数。
文档应该准确地解释您的期望,一个小示例将帮助人们使用您的API
我不会将该模式用于开放API,但这可以作为内部API的一种变通方法