请求体中的对象数组



我使用go-swagger为我们的api生成swagger文件我一直在尝试为API添加注释,该API在请求中获得对象数组,但go-swagger似乎不识别它

我的请求是这样的JSON格式:

{
[
{
"name": "title1",
"label": "tag1",
"sort": true
},
{
"name": "title2",
"label": "tag2",
"sort": true
}
]
}

这就是我的评论现在的样子
// swagger:route POST /admin/qc QC createQC
//
// Creates a new QC.
//
//
//     Consumes:
//     - application/json
//
//     Produces:
//     - application/json
//
//     Schemes: https
//
//     Deprecated: false
//
//
//     Parameters:
//       + name: Authorization
//         in: header
//         required: true
//         type: string
//
//       + name: input
//         in: body
//         required: true
//         type: array
//         items: QC
//
//     Responses:
//       200: StatusOK

是生成的swagger文件

/admin/qc:
post:
consumes:
- application/json
operationId: createQC
parameters:
- in: header
name: Authorization
required: true
type: string
- in: body
name: input
required: true
schema:
type: array
produces:
- application/json
responses:
"200":
description: StatusOK
schema:
$ref: '#/definitions/StatusOK'
schemes:
- https
summary: Creates a new QC.
tags:
- QC

go-swagger不拾取此注释中的items类型。遗憾的是,更改此API的请求类型的选项不可用。

有人知道我应该怎么注释这个吗?

为了注释这种类型的请求,您需要定义一个像这样的新结构体:

// swagger:parameters createQC
type CreateQCReqs struct {
// in: body
Body []*CreateQCReq
}

您需要用swagger:parameters注释它,后面跟着api的操作id
,然后您需要用所需的数据类型定义Body字段在我的情况下,它是一个数组的CreateQCReq
之后,你需要删除你的swagger:route的主体参数,否则在你的swagger文件的主体字段将生成2次

相关内容

  • 没有找到相关文章

最新更新