50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
|
package permission
|
|||
|
|
|||
|
import (
|
|||
|
"context"
|
|||
|
|
|||
|
"122.51.31.227/go-course/go18/devcloud/mcenter/apps/endpoint"
|
|||
|
"github.com/infraboard/mcube/v2/ioc"
|
|||
|
"github.com/infraboard/mcube/v2/ioc/config/gorestful"
|
|||
|
"github.com/infraboard/mcube/v2/ioc/config/log"
|
|||
|
"github.com/rs/zerolog"
|
|||
|
)
|
|||
|
|
|||
|
func init() {
|
|||
|
ioc.Api().Registry(&ApiRegister{})
|
|||
|
}
|
|||
|
|
|||
|
func GetApiRegister() *ApiRegister {
|
|||
|
return ioc.Api().Get("api_register").(*ApiRegister)
|
|||
|
}
|
|||
|
|
|||
|
// 接口注册模块: 扫描当前GoResuful Container下所有路径,并完成注册
|
|||
|
type ApiRegister struct {
|
|||
|
ioc.ObjectImpl
|
|||
|
|
|||
|
log *zerolog.Logger
|
|||
|
}
|
|||
|
|
|||
|
func (c *ApiRegister) Name() string {
|
|||
|
return "api_register"
|
|||
|
}
|
|||
|
|
|||
|
// 这个Init一定要放到所有的路由都添加完成后进行
|
|||
|
func (i *ApiRegister) Priority() int {
|
|||
|
return -100
|
|||
|
}
|
|||
|
|
|||
|
func (a *ApiRegister) Init() error {
|
|||
|
a.log = log.Sub(a.Name())
|
|||
|
// 注册认证中间件
|
|||
|
entries := endpoint.NewEntryFromRestfulContainer(gorestful.RootRouter())
|
|||
|
req := endpoint.NewRegistryEndpointRequest()
|
|||
|
req.AddItem(entries...)
|
|||
|
set, err := endpoint.GetService().RegistryEndpoint(context.Background(), req)
|
|||
|
if err != nil {
|
|||
|
return err
|
|||
|
}
|
|||
|
a.log.Info().Msgf("registry endpoinst: %s", set.Items)
|
|||
|
return nil
|
|||
|
}
|