Skip to content

net/ghttp: openapi doc misses request parameter constraints when CommonRequest is set. #3605

@jswxstw

Description

@jswxstw

Go version

go version go1.21.3 darwin/amd64

GoFrame version

2.7.1

Can this bug be reproduced with the latest release?

Option Yes

What did you do?

func (c *cMain) enhanceOpenAPIDoc(s *ghttp.Server) {
	openapi := s.GetOpenApi()
        // CommonRequest is set to QCloudV3CommonReq.
	openapi.Config.CommonRequest = QCloudV3CommonReq{}
	openapi.Config.CommonResponse = QCloudV3CommonRes{}
	openapi.Config.CommonResponseDataField = `Response.`
}
type QCloudV3CommonReq struct {
	AppId         int64  `description:"云API参数:应用Id"`
	RequestId     string `description:"云API参数:RequestId,请求句柄,默认都会传给后端,方便定位问题"`
	Action        string `v:"required" description:"云API参数:API接口名称,默认都会传给后端,提供后端业务区分接口,从而保持内外接口名称一致。"`
	Uin           string `description:"云API参数:资源拥有者(主账号)UIN"`
	SubAccountUin string `description:"云API参数:请求者自身(子账号/协作者/角色)uin。UIN SubAccountUin 模式"`
	ClientIp      string `description:"云API参数:客户端来源IP"`
	ApiModule     string `description:"云API参数:被请求的模块名"`
	Region        string `description:"云API参数:地域英文Id"`
	Token         string `description:"云API参数:临时证书Token"`
	Version       string `description:"云API参数:版本"`
	RequestSource string `description:"云API参数:请求来源,目前仅区分MC和API"`
	Language      string `description:"云API参数:语言信息,目前取值:zh-CN和en-US。不同语言返回的错误Message不一样,目前仅cvm业务支持。"`
	Timestamp     string `description:"云API参数:当前时间戳,来自公共请求参数"`
}

type DeleteInstanceRiskReq struct {
	g.Meta     `path:"/DeleteInstanceRisk" tags:"实例风险管理" method:"post" summary:"删除实例风险"`
	InstanceId string `v:"required" dc:"实例ID"`
	Type       string `v:"required" dc:"风险类型"`
}

I set QCloudV3CommonReq to openapi.Config.CommonRequest.

What did you see happen?

image Request parameter constraints in `QCloudV3CommonReq` are displayed normally, but `DeleteInstanceRiskReq` misses the constraints.

What did you expect to see?

Request parameter constraints in DeleteInstanceRiskReq can be displayed normally.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIt is confirmed a bug, but don't worry, we'll handle it.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions