56 lines
1.4 KiB
Go
Raw Normal View History

2025-05-31 16:14:34 +08:00
package api
2025-06-08 10:05:58 +08:00
import (
"122.51.31.227/go-course/go18/devcloud/mcenter/apps/user"
2025-06-08 11:18:31 +08:00
"122.51.31.227/go-course/go18/devcloud/mcenter/permission"
2025-06-08 10:05:58 +08:00
"github.com/infraboard/mcube/v2/ioc"
"github.com/infraboard/mcube/v2/ioc/config/gorestful"
restfulspec "github.com/emicklei/go-restful-openapi/v2"
"github.com/emicklei/go-restful/v3"
)
func init() {
ioc.Api().Registry(&UserRestfulApiHandler{})
}
type UserRestfulApiHandler struct {
ioc.ObjectImpl
// 依赖控制器
svc user.Service
}
func (h *UserRestfulApiHandler) Name() string {
return "users"
}
func (h *UserRestfulApiHandler) Init() error {
h.svc = user.GetService()
tags := []string{"用户登录"}
ws := gorestful.ObjectRouter(h)
2025-06-08 11:18:31 +08:00
// required_auth=true/false
2025-06-08 10:05:58 +08:00
ws.Route(ws.GET("").To(h.QueryUser).
Doc("用户列表查询").
Metadata(restfulspec.KeyOpenAPITags, tags).
2025-06-08 11:18:31 +08:00
// 这个开关怎么生效
// 中间件需求读取接口的描述信息,来决定是否需要认证
Metadata(permission.Auth(true)).
2025-06-08 12:04:18 +08:00
Metadata(permission.Resource("user")).
Metadata(permission.Action("list")).
2025-06-08 10:05:58 +08:00
Param(restful.QueryParameter("page_size", "分页大小").DataType("integer")).
Param(restful.QueryParameter("page_number", "页码").DataType("integer")).
Writes(Set{}).
Returns(200, "OK", Set{}))
return nil
}
// *types.Set[*User]
// 返回的泛型, API Doc这个工具 不支持泛型
type Set struct {
Total int64 `json:"total"`
Items []user.User `json:"items"`
}