我使用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次