gpt4 book ai didi

json - Swagger POST Json 正文参数架构 YAML

转载 作者:行者123 更新时间:2023-12-05 01:16:28 24 4
gpt4 key购买 nike

我正在使用 swagger-api 和 swagger-editor 处理路由的 RESTful API。
我不明白为什么我通过 body 发送的 JSON 永远不会到达我的 Controller 。
这是我的 YAML

  schemes:
- http
- https

produces: [application/json, multipart/form-data, application/x-www-form-urlencoded]

paths:
/projects:
x-swagger-router-controller: project
post:
description: create a new project
operationId: postProjects
consumes:
- application/json
parameters:
- name: param1
in: body
description: description
required: false
schema:
$ref: "#/definitions/Project"
responses:
"200":
description: Success
schema:
$ref: "#/definitions/Project"
default:
description: Error
schema:
$ref: "#/definitions/ErrorResponse"

definitions:
Project:
properties:
name:
type: string
required:
- name

我发送的帖子请求的一个例子。
curl -v -X POST -H "Content-Type: application/json" -d '{"name":"test"}' http://127.0.0.1:10010/projects

和回应
{"message":"Request validation failed: Parameter (param1) failed schema validation","code":"SCHEMA_VALIDATION_FAILED","failedValidation":true,"results":{"errors":[{"code":"OBJECT_MISSING_REQUIRED_PROPERTY","message":"Missing required property: name","path":[]}],"warnings":[]},"path":["paths","/projects","post","parameters","0"],"paramName":"param1"}

如果我将参数“name”设置为不需要,我只会收到这样的空响应
{参数1:
{ 路径:[ '路径', '/projects', 'post', 'parameters', '0' ],
架构:
{名称:'参数1',
在:' body ',
描述:'描述',
要求:假,
架构:[对象]},
原始值:{},
值(value): {} } }
我不知道为什么因为其他格式(如标题、路径或表单数据)可以正常工作。
我总是收到一个空对象。 req.swagger.params没有值(value)。
我尝试了几种模式,但即使是最简单的模式也无法正常工作。
我可以从标题中看出“内容类型”:“应用程序/json”。
因此设置了内容类型,模式验证了一个名为“name”的简单字符串参数。一切都应该没问题。但还是不行。

最佳答案

这个问题已被解决。
这与 Swagger 无关。
我用 nodeJs 构建了一个 API,我意识到我没有一个中间件来处理 body 参数。
所以因为我在启用 swagger 中间件之前错过了一步,所以我无法对 body 参数做任何事情。

关于json - Swagger POST Json 正文参数架构 YAML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34607526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com