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"`
|
|
|
|
}
|