Documentation
¶
Overview ¶
@Author: Ciusyan 2023/1/28
@Author: Ciusyan 2023/1/28
@Author: Ciusyan 2023/1/28
@Author: Ciusyan 2023/1/28
Index ¶
- Constants
- func ExistingGinDependencies() (apps []string)
- func ExistingGrpcDependencies() (apps []string)
- func ExistingInternalDependencies() (apps []string)
- func GinDI(dependency GinDependency)
- func GrpcDI(dependency GrpcDependency)
- func InitAllDependencies() error
- func InternalDI(dependency InternalDependency)
- func RegistryGin(opts *GinOptions)
- func RegistryGrpc(s *grpc.Server)
- type AppName
- type GinDefault
- type GinDependency
- type GinOptions
- type GrpcDependency
- type InternalDependency
Constants ¶
const ( USER_API = "user" VIDEO_API = "video" RELATION_API = "relation" )
Variables ¶
This section is empty.
Functions ¶
func ExistingGinDependencies ¶
func ExistingGinDependencies() (apps []string)
ExistingGinDependencies 返回Gin HTTP服务依赖的容器中已存在的依赖名称
func ExistingGrpcDependencies ¶
func ExistingGrpcDependencies() (apps []string)
ExistingGrpcDependencies 返回GRPC服务依赖的容器中已存在的依赖名称
func ExistingInternalDependencies ¶
func ExistingInternalDependencies() (apps []string)
ExistingInternalDependencies 返回内部服务依赖的容器中已存在的依赖名称
func GrpcDI ¶
func GrpcDI(dependency GrpcDependency)
GrpcDI :将依赖注入此容器,Grpc DI(Grpc Dependency Inject)
func InternalDI ¶
func InternalDI(dependency InternalDependency)
InternalDI :将依赖注入此容器,Internal DI(Internal Dependency Inject)
Types ¶
type GinDefault ¶
type GinDefault struct{}
GinDefault 类似与GRPC的做法,提供一个默认实现的结构体,方便外界使用
func (GinDefault) Init ¶
func (g GinDefault) Init() error
func (GinDefault) Name ¶
func (g GinDefault) Name() string
func (GinDefault) Registry ¶
func (g GinDefault) Registry(r gin.IRoutes)
func (GinDefault) RegistryWithMiddle ¶
func (g GinDefault) RegistryWithMiddle(r gin.IRoutes)
func (GinDefault) Version ¶
func (g GinDefault) Version() string
type GinDependency ¶
type GinDependency interface { InternalDependency // Registry 该模块所需要注册的路由:添加传递的中间件 // [因为gin不支持路由装饰,只能使用路由分组的方式区分特殊的路由(如:添加中间件)] Registry(r gin.IRoutes) // RegistryWithMiddle 该用于注册特殊的路由:不添加传递的中间件 RegistryWithMiddle(r gin.IRoutes) // Version 该服务API的版本 Version() string }
GinDependency Gin HTTP的服务实例想要注入此容器,必须实现该接口
func GetGinDependency ¶
func GetGinDependency(name string) GinDependency
GetGinDependency 根据模块名称 获取内部服务模块的依赖,外部使用时需自己断言,如:
userGin = ioc.GetGinDependency("user").(user.UserGin)
type GinOptions ¶
type GinOptions struct { // 路由 Router gin.IRouter `json:"router"` // API 前缀 Prefix string `json:"prefix"` // API 中间件 Middleware []gin.HandlerFunc `json:"middleware"` // API 是否需要添加版本 NotVersion bool `json:"not_version"` // API 是否需要添加服务名称 NotName bool `json:"not_name"` }
GinOptions 注册IOC中Gin服务的路由时,可传入配置
func NewGinOption ¶
func NewGinOption(r gin.IRouter, prefix string, middle ...gin.HandlerFunc) *GinOptions
NewGinOption :路由对象、前缀、中间件
type GrpcDependency ¶
type GrpcDependency interface { InternalDependency // Registry 该模块所需要注册的GRPC服务 Registry(s *grpc.Server) }
GrpcDependency GRPC 服务的实例想要注入此容器,必须实现该接口
func GetGrpcDependency ¶
func GetGrpcDependency(name string) GrpcDependency
GetGrpcDependency 根据模块名称 获取GRPC服务模块的依赖,外部使用时需自己断言,如:
userGrpc = ioc.GetGrpcDependency("user").(user.UserGrpc)
type InternalDependency ¶
type InternalDependency interface { // Init 如何初始化注入此 IoC 的实例 Init() error // Name 注入服务模块的名称 Name() string }
InternalDependency 内部服务的实例想要注入此容器,必须实现该接口
func GetInternalDependency ¶
func GetInternalDependency(name string) InternalDependency
GetInternalDependency 根据模块名称 获取Gin HTTP服务模块的依赖,外部使用时需自己断言,如:
userService = ioc.GetInternalDependency("user").(user.Service)