gin-swagger 找不到模式类型:"handler.component"
gin-swagger can not find schema type: "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', 'podID':'log-gen-6d776dc797-bnbm9', 'follow':false, '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
我正在尝试使用我创建并在我的代码中用作参数的结构,但是在 运行 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', 'podID':'log-gen-6d776dc797-bnbm9', 'follow':false, '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