我有以下处理程序// Create database// swagger:route POST /databases createDatabase//// Create database//// Security:// oauth2://// responses:// 202: Database// 401: Error// ...func (h Handler) Create(c *gin.Context) { var request CreateDatabaseRequest if err := handler.DataBinder(c, &request); err != nil { _ = c.Error(err) return } ...}以及我通过请求正文发布的以下结构// CreateDatabaseRequest// swagger:parameters createDatabase// in: body// required: true//// Create database input parametertype CreateDatabaseRequest struct { Name string `json:"name" binding:"required"` GroupId uint `json:"groupId" binding:"required"`}但是当我生成我的文档时, CreateDatabaseRequeststruct 的属性显示为两个单独的查询参数。我可以通过创建一个如下定义的附加虚拟结构来修复它// swagger:parameters createDatabasetype _ struct { // Create database parameter // in: body // required: true Body database.CreateDatabaseRequest}但我真的不喜欢这样,宁愿只记录我的请求参数。关于如何正确记录我的结构以便它显示为请求正文参数而不是查询字符串的任何线索?
1 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
当您使用swagger:parameters
注解时,go-swagger 将该结构视为 API 端点的所有参数的描述,包括标头、查询参数和正文。因此,您需要一个定义所有这些类型参数的结构,以及另一个定义实际主体结构的结构。因此,据我所知,没有办法摆脱包含主体的第二个结构,因为主体不是 API 的唯一参数。
- 1 回答
- 0 关注
- 73 浏览
添加回答
举报
0/150
提交
取消