如何解决gin-swagger 找不到架构类型:“handler.component”
我正在尝试使用我创建的结构并在我的代码中用作参数,但在运行 swag init
后,我收到以下错误:
ParseComment error in file /src/handler/handler.go :can not find schema type: "handler.component"
我的结构:
package types
// Component defines the structure of the json that user will send for a log search
// swagger:parameters component
type Component struct {
// in: query
// example: {"envID":"default","podID":"log-gen-6d776dc797-bnbm9","follow":false,"tail":5}
EnvID string `json:"envID"` // The env-id
PodID string `json:"podID"` // The podID
Tail int `json:"tail"` // Number of lines for tailing the logs
Follow bool `json:"follow"` // If the we want to follow the logs or not
Site string `json:"site"` // The cluster/site which hosts the component --> local is pointing to the local cluster
}
我的处理程序:
package handler
import (
"src/types"
)
// FollowLogsSSE is ...
// @Summary Return logs
// @Accept json
// @Produce json
// @Param q query component true "{'envID':'default','podID':'log-gen-6d776dc797-bnbm9','follow':false,'tail':5}"
// @Success 200 {object} string string
func FollowLogsSSE(comp types.Component) gin.HandlerFunc {
}
我也试过 // @Param q query types.component true "{'envID':'default','tail':5}"
但我得到了完全相同的错误。
我该如何解决这个问题?
解决方法
解决方案是使用 types.Component
(大写 C),一切都会正常。
一些额外的点:
- 类型需要任何装饰器等,并且 swagger 会毫无问题地找到结构,并显示每个字段的注释
- 要根据需要定义字段,您可以将
binding:"required"
添加到该字段:
EnvID string `json:"envID" binding:"required"` // The env-id: this can be an env that has created by the user or any other K8s namespace
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。