如何在swagger body参数中定义平面对象结构
我使用的是swagger 2.0,需要定义一个post请求来创建account对象。对象数据作为平面对象结构在主体中传递: 示例主体数据:如何在swagger body参数中定义平面对象结构,swagger,swagger-2.0,Swagger,Swagger 2.0,我使用的是swagger 2.0,需要定义一个post请求来创建account对象。对象数据作为平面对象结构在主体中传递: 示例主体数据: { first_name: "Sherlock", last_name: "Holmes", address: "Bakerstreet 221b", # tax_id: not set, # optional } 在yaml中创建请求文档时: definitions: new_account: properties:
{
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
,它本身包含一些字段。但是我的结构是扁平的,没有顶部节点帐户
如果我省略了name
属性,它基本上是一样的,只是结果文档中的name列是空的,整个结构要么是必需的,要么不是
我目前的解决方法是列出所有参数并在:query中设置,但这显然是错误的
如何定义它?account
只是body参数的名称。一种用法是由生成的API客户端中的方法签名。换句话说,account
不是顶级节点(仅供参考,在Swagger spec 1.2中,body参数必须命名为body
)
对于您提供的示例体数据,上面的定义是正确的 account
只是body参数的名称。一种用法是由生成的API客户端中的方法签名。换句话说,account
不是顶级节点(仅供参考,在Swagger spec 1.2中,body参数必须命名为body
)
对于您提供的示例体数据,上面的定义是正确的 好的,谢谢。很高兴知道,因为从生成的文档来看,这对我来说并不明显。我宁愿列出所有最重要的元素,但如果这是正确的方式,我会选择它。因此,在《大摇大摆2》中,名称不必是body
,而且似乎一点也不强制。如果我不使用它,它也是有效的,并且可能不会因为认为它是顶级节点名而混淆其他人。你说什么?回复我最后的评论。尽管swagger editor显示的参数列表没有名称,但它也显示了一个错误,即定义无效。看起来这不是一个选项,我必须使用body
,这样才能避免混淆读者。好的,谢谢。很高兴知道,因为从生成的文档来看,这对我来说并不明显。我宁愿列出所有最重要的元素,但如果这是正确的方式,我会选择它。因此,在《大摇大摆2》中,名称不必是body
,而且似乎一点也不强制。如果我不使用它,它也是有效的,并且可能不会因为认为它是顶级节点名而混淆其他人。你说什么?回复我最后的评论。尽管swagger editor显示的参数列表没有名称,但它也显示了一个错误,即定义无效。看起来这不是一个选项,我必须使用body
,这样才能避免混淆读者。