body 中的 Swagger Editor 多个参数
Swagger Editor multiple parameters in body
所以我明白,如果我们想要 body 参数,我们必须有一个架构,我就是这样做的。问题是无论我如何尝试定义我的模式,它都不允许我有多个 body 参数。这是我尝试过的方法之一的示例。任何帮助都会很棒!
swagger: '2.0'
# This is your document metadata
info:
version: "0.0.1"
title: Todo App
schema: {
}
host: localhost:3000
schemes:
- http
- https
consumes:
- application/json
produces:
- application/x-www-form-urlencoded
basePath: /
paths:
# This is a path endpoint. Change it.
/tasks:
post:
description: |
Add 'Task' object.
parameters:
# An example parameter that is in query and is required
-
name: name
in: query
description: unique object task name
required: true
schema:
type: string
- name: description
in: query
description: task description
required: true
schema:
type: string
responses:
# Response code
200:
description: Successful response
# A schema describing your response object.
# Use JSON Schema format
schema:
title: Return String
type: string
example: "Task added succesfully"
500:
description: Error
schema:
type: string
example: "Could not add Task"
我不确定是否理解你的问题...
- 如果您试图为一项操作定义多个主体参数,则不能。如 swagger specification 中所述:
Body [...] there can only be one body parameter
- 如果您尝试发送具有多个参数的正文,请在定义部分添加一个对象模型并在您的正文参数中引用它,请参见下文(适用于 editor.swagger.io):
您的示例节点也是错误的,有关详细信息,请参阅here。
swagger: '2.0'
info:
version: "0.0.1"
title: Todo App
host: localhost:3000
schemes:
- http
- https
consumes:
- application/json
produces:
- application/x-www-form-urlencoded
basePath: /
paths:
# This is a path endpoint. Change it.
/tasks:
post:
description: |
Add 'Task' object.
parameters:
- name: task
in: body
description: task object
required: true
schema:
$ref: '#/definitions/Task'
responses:
200:
description: Successful response
schema:
title: Return String
type: string
example: "Task added succesfully"
500:
description: Error
schema:
type: string
example: "Could not add Task"
definitions:
Task:
description: Task object
properties:
name:
type: string
description: task object name
description:
type: string
description: task description
required:
- name
- description
您还可以使用 properties
作为其 schema
的一部分来定义请求正文参数的属性。这在对象负载下有一个很好的例子:https://swagger.io/docs/specification/2-0/describing-request-body/。
paths:
/users:
post:
summary: Creates a new user.
consumes:
- application/json
parameters:
- in: body
name: user
description: The user to create.
schema:
type: object
required:
- userName
properties:
userName:
type: string
firstName:
type: string
lastName:
type: string
responses:
201:
description: Created
缺点当然是不能重用对象定义,但有时对象定义并不合适。
所以我明白,如果我们想要 body 参数,我们必须有一个架构,我就是这样做的。问题是无论我如何尝试定义我的模式,它都不允许我有多个 body 参数。这是我尝试过的方法之一的示例。任何帮助都会很棒!
swagger: '2.0'
# This is your document metadata
info:
version: "0.0.1"
title: Todo App
schema: {
}
host: localhost:3000
schemes:
- http
- https
consumes:
- application/json
produces:
- application/x-www-form-urlencoded
basePath: /
paths:
# This is a path endpoint. Change it.
/tasks:
post:
description: |
Add 'Task' object.
parameters:
# An example parameter that is in query and is required
-
name: name
in: query
description: unique object task name
required: true
schema:
type: string
- name: description
in: query
description: task description
required: true
schema:
type: string
responses:
# Response code
200:
description: Successful response
# A schema describing your response object.
# Use JSON Schema format
schema:
title: Return String
type: string
example: "Task added succesfully"
500:
description: Error
schema:
type: string
example: "Could not add Task"
我不确定是否理解你的问题...
- 如果您试图为一项操作定义多个主体参数,则不能。如 swagger specification 中所述:
Body [...] there can only be one body parameter
- 如果您尝试发送具有多个参数的正文,请在定义部分添加一个对象模型并在您的正文参数中引用它,请参见下文(适用于 editor.swagger.io):
您的示例节点也是错误的,有关详细信息,请参阅here。
swagger: '2.0'
info:
version: "0.0.1"
title: Todo App
host: localhost:3000
schemes:
- http
- https
consumes:
- application/json
produces:
- application/x-www-form-urlencoded
basePath: /
paths:
# This is a path endpoint. Change it.
/tasks:
post:
description: |
Add 'Task' object.
parameters:
- name: task
in: body
description: task object
required: true
schema:
$ref: '#/definitions/Task'
responses:
200:
description: Successful response
schema:
title: Return String
type: string
example: "Task added succesfully"
500:
description: Error
schema:
type: string
example: "Could not add Task"
definitions:
Task:
description: Task object
properties:
name:
type: string
description: task object name
description:
type: string
description: task description
required:
- name
- description
您还可以使用 properties
作为其 schema
的一部分来定义请求正文参数的属性。这在对象负载下有一个很好的例子:https://swagger.io/docs/specification/2-0/describing-request-body/。
paths:
/users:
post:
summary: Creates a new user.
consumes:
- application/json
parameters:
- in: body
name: user
description: The user to create.
schema:
type: object
required:
- userName
properties:
userName:
type: string
firstName:
type: string
lastName:
type: string
responses:
201:
description: Created
缺点当然是不能重用对象定义,但有时对象定义并不合适。