gpt4 book ai didi

go - curl 失败,这 Swagger 摇欲坠

转载 作者:行者123 更新时间:2023-12-03 10:07:18 26 4
gpt4 key购买 nike

我已经创建了一个 Swagger 的规范

/config/download:
post:
summary: Download config
consumes:
- application/json
produces:
- application/zip
parameters:
- in: body
name: config
schema:
type: array
items:
title: config files
description: All config file name that need to be downloaded
type: string
minItems: 0
maxItems: 1024
responses:
200:
description:
schema:
type: string
format: binary
我正在用go-swagger编译此swagger规范,并且我还为此实现了后端
但是当我尝试 curl 这个要求时
 curl -i  http://127.0.0.1:<port>/config/download -X "POST" -d '{"config": ["config1.json", "config.json"]}' -H "Content-Type: application/json"
HTTP/1.1 400 Bad Request
Content-Type: application/json
Date: Tue, 02 Feb 2021 07:36:06 GMT
Content-Length: 132
Connection: close

{"code":400,"message":"parsing config body from \"\" failed, because json: cannot unmarshal object into Go value of type []string"}
我不认为 curl 有什么问题,但是 Swagger 的规范似乎也是正确的,那可能是问题所在。从curl错误消息中可以明显看出,服务器未正确处理此请求,甚至未到达后端实现代码。
任何建议表示赞赏。

最佳答案

您应该为请求正文参数创建一个新的定义,例如

config:
title: config names
properties:
configs:
title: config names
description: List of config files to download.
type: array
items:
title: Config
type: string
minItems: 0
maxItems: 1024
然后 Swagger 的规范看起来像这样
       parameters:
- in: body
name: config
schema:
type: object
$ref: '#/definitions/config'

关于go - curl 失败,这 Swagger 摇欲坠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66008945/

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