我使用swagger 2.0并需要定义发布请求以创建帐户对象。对象数据作为平面对象结构在主体中传递:
身体数据示例:
{
first_name: "Sherlock",
last_name: "Holmes",
address: "Bakerstreet 221b",
# tax_id: not set, # optional
}
当我在yaml中创建请求文档时:
definitions:
new_account:
properties:
first_name:
type: string
last_name:
type: string
address:
type: string
tax_id:
type: string
required:
- first_name
- last_name
- address
paths:
/accounts:
post:
summary: Create account
parameters:
- name: account
in: body
schema:
$ref: "#/definitions/new_account"
文档描述了一个只有一个元素的主体:account
,它本身包含一些字段。但是我的结构是扁平的,没有顶部节点account
。
如果我省略name
属性,它基本上是相同的,只是在结果文档中名称列为空,整个结构是否需要。
我目前的解决方法是列出所有参数并设置in: query
,但这显然是错误的。
如何定义?
答案 0 :(得分:3)
account
只是body参数的名称。一种用法是Swagger Codegen生成的API客户端中的方法签名。换句话说,account
不是顶级节点(FYI,在Swagger规范1.2中,body参数必须命名为body
)
您上面的定义对于您提供的示例正文数据是正确的。