登录
首页 >  Golang >  Go问答

swagger:将参数显示为查询字符串参数

来源:stackoverflow

时间:2024-02-24 09:33:26 424浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《swagger:将参数显示为查询字符串参数》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

我有以下处理程序

// 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 parameter
type createdatabaserequest struct {
    name    string `json:"name" binding:"required"`
    groupid uint   `json:"groupid" binding:"required"`
}

但是当我生成文档时,createdatabaserequeststruct 的属性显示为两个单独的查询参数。

我可以通过创建一个额外的虚拟结构来修复它,如下定义

// swagger:parameters createDatabase
type _ struct {
    // Create database parameter
    // in: body
    // required: true
    Body database.CreateDatabaseRequest
}

但我真的不喜欢这样,而宁愿只是记录我的请求参数。

关于如何正确记录我的结构以便它显示为请求正文参数而不是查询字符串的任何线索?


正确答案


当您使用 swagger:parameters 注释时,go-swagger 将该结构视为 API 端点的所有参数的描述,其中包括标头、查询参数和正文。因此,您需要一个定义所有这些类型参数的结构,以及另一个定义实际主体结构的结构。因此,据我所知,没有办法摆脱包含主体的第二个结构,因为主体并不是 API 的唯一参数。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>