我使用 swagger,OpenAPI 版本 3 为 Web API 编写文档。我使用swagger php 包从注释生成记录的 json。我有服务,在那里我发送 post 请求以添加新用户,请求的主体是 json(因此参数作为 json 对象发送)。它有 2 个参数 - 电子邮件和密码。请求正文看起来像
{
"email": "[email protected]",
"password": "test"
}
这是 swagger 的 YAML
paths:
/users:
post:
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SignUp'
responses:
'200':
description: successful operation
这是包含请求参数的参考架构 ( /components/schemas/SignUp
)
SignUp:
title: SignUp
description: Adds new user
type:object
required:
- email
- password
properties:
email:
description: User's email
type: string
maximum: 255
pattern: email
password:
description: User's password
type: string
maximum: 255
这是它在 swagger UI 中的外观,如您在图像上看到的,请求的主体为空(虽然我有 2 个参数),这就是问题所在。如果我将标题从 更改为application/json
,application/x-www-form-urlencoded
那么它将起作用(它将在参数列表中显示所有参数)。如何让它在该列表中显示 json 对象参数?
您的规范是正确的,并且 Swagger UI 中显示的结果是正确的,并且完全符合 OpenAPI 3.0 定义的预期。
请注意,有两个部分,“参数”(用于parameters
)和“请求正文”(用于requestBody
)。在 OpenAPI 3.0 中,parameters
仅用于查询参数、路径参数、请求头和 cookie;而requestBody
显示在“请求正文”部分。您可以单击“模型”链接以查看带有属性描述的请求正文架构。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句