Documentation ¶
Index ¶
- Constants
- Variables
- func ConvertEventDataTo[DataType any](event *Event) (*DataType, error)
- func DI_ConfigOptions[insType any](services di.ServiceCollector, path string, ins insType, opts ...func(insType))
- func DerefString(s *string) string
- func HasErr(errs ...error) error
- func Http_MiddlewareToEchoFunc(middleware HttpMiddleware) echo.MiddlewareFunc
- func IsError(bad bool, err error) error
- func IsErrorf(bad bool, format string, a ...any) error
- func MapToStruct[DstType any](from any, toOpt ...*DstType) (*DstType, error)
- func Slice_AddOrUpdate[DataType any](s []DataType, data DataType, check func(DataType) bool) []DataType
- func Slice_ConvertTo[FromType any, DstType any](froms []FromType, converter func(FromType) (DstType, error)) ([]DstType, error)
- func Slice_Delete[DataType any](s []DataType, check func(DataType) bool) []DataType
- func Slice_FindIndex[DataType any](s []DataType, check func(DataType) bool) int
- func Strings_FirstToLower(str string) string
- func Strings_FirstToUpper(str string) string
- func StructToMap(from any) (map[string]any, error)
- func UseCache[ValueType any](cacher Cacher, key string) (CacheValueGetter[ValueType], CacheValueUpdater[ValueType])
- func UseCache2[ValueType any](cacher Cacher, key string) (CacheValueGetter[ValueType], CacheValueUpdater2[ValueType])
- func UseHCache[ValueType any](cacher Cacher, key string) (CacheValueGetter[ValueType], CacheHValueUpdater[ValueType])
- func UseHCache2[ValueType any](cacher Cacher, key string) (CacheValueGetter[ValueType], CacheValueUpdater2[ValueType])
- func UseHCacheIndex[ValueType any](cacher Cacher, key string, index string) (CacheValueGetter[ValueType], CacheValueUpdater[ValueType])
- func UseHCacheIndex2[ValueType any](cacher Cacher, key string, index string) (CacheValueGetter[ValueType], CacheValueUpdater2[ValueType])
- type App
- type AppBuilder
- type CacheHValueUpdateHandler
- type CacheHValueUpdater
- type CacheNilHandler
- type CacheUpdateOptions
- type CacheValue
- type CacheValueGetter
- type CacheValueUpdateHandler
- type CacheValueUpdater
- type CacheValueUpdater2
- type Cacher
- type CanToMap
- type Config
- type Database
- type DatabaseProvider
- type Event
- type EventBus
- type EventHandler
- type HttpMiddleware
- type HttpServer
- type ID
- func ParseBase2(id string) (ID, error)
- func ParseBase32(b []byte) (ID, error)
- func ParseBase36(id string) (ID, error)
- func ParseBase58(b []byte) (ID, error)
- func ParseBase64(id string) (ID, error)
- func ParseBytes(id []byte) (ID, error)
- func ParseInt64(id int64) ID
- func ParseIntBytes(id [8]byte) ID
- func ParseString(id string) (ID, error)
- type IdProvider
- type JsonProperty
- type JsonPropertyType
- type JsonSchema
- type Logger
- type MicroService
- type OnChangeFunc
- type Options
- type Result
- type ServiceConfigFunc
- type ServiceRegister
Constants ¶
View Source
const (
HttpHeader_XRequestID = "X-Request-Id"
)
Variables ¶
View Source
var ( ErrInvalidBase58 = errors.New("invalid base58") ErrInvalidBase32 = errors.New("invalid base32") )
View Source
var ( LogField_Source string = "source" LogField_Track string = "track" )
View Source
var (
ErrNilCache = errors.New("nil cache")
)
Functions ¶
func ConvertEventDataTo ¶
将 event 携带的数据转换为结构体
func DI_ConfigOptions ¶
func DI_ConfigOptions[insType any]( services di.ServiceCollector, path string, ins insType, opts ...func(insType), )
将 config path 对应的数据绑定给 options 然后注入 IoC 容器
func DerefString ¶
func Http_MiddlewareToEchoFunc ¶
func Http_MiddlewareToEchoFunc(middleware HttpMiddleware) echo.MiddlewareFunc
将自定义 HttpMiddleware 接口转换为 echo 可用的 MiddlewareFunc
func MapToStruct ¶
func Slice_AddOrUpdate ¶
func Slice_ConvertTo ¶
func Slice_Delete ¶
func Slice_FindIndex ¶
func Strings_FirstToLower ¶
func Strings_FirstToUpper ¶
func UseHCache2 ¶
func UseHCacheIndex ¶
Types ¶
type AppBuilder ¶
type AppBuilder interface { // 依赖注入 ConfigService(configFuncs ...ServiceConfigFunc) // 构建一个全新的应用 Build() (App, error) }
App 构建
type CacheHValueUpdateHandler ¶
type CacheHValueUpdateHandler[ValueType any] func(value ValueType) (map[string]any, *CacheUpdateOptions, error)
type CacheHValueUpdater ¶
type CacheHValueUpdater[ValueType any] func(handler CacheHValueUpdateHandler[ValueType]) error
type CacheNilHandler ¶
type CacheUpdateOptions ¶
type CacheUpdateOptions struct {
Expire int64
}
type CacheValueGetter ¶
type CacheValueGetter[ValueType any] func(nilHandler CacheNilHandler[ValueType]) (ValueType, error)
type CacheValueUpdateHandler ¶
type CacheValueUpdateHandler[ValueType any] func(value ValueType) (ValueType, *CacheUpdateOptions, error)
type CacheValueUpdater ¶
type CacheValueUpdater[ValueType any] func(hanler CacheValueUpdateHandler[ValueType]) error
type CacheValueUpdater2 ¶
type Cacher ¶
type Cacher interface { Set(key string, value any, expire int64) error Get(key string) (CacheValue, error) SetH(key string, values map[string]any, expire int64) error // TODO 这里不应该直接定义为 map,可能是 struct 使用 hash 存储;其实需要处理 GetH(key string, index string) (CacheValue, error) Lock(key string) Unlock(key string) }
type DatabaseProvider ¶
type DatabaseProvider interface { // 通过服务 name 获取对应的数据库实例访问对象 Provide(name string) (*Database, error) }
数据库 provider
type Event ¶
type Event struct { TrackID string // 可追踪 ID ;发布时生成 Topic string // 主题 Data any // 携带的数据,类型可能是 JSON 或者结构体 CreateAt int64 // 创建时间(时间戳,单位 ms) }
事件
type EventBus ¶
type EventBus interface { Subscribe(topic string, handler EventHandler) (string, error) // 订阅事件,返回订阅 ID ,可用于取消订阅 Unsubscribe(subscribeID string) error // 通过订阅 ID 取消订阅 Publish(event *Event) (*Event, error) // 发布事件 }
事件总线
type HttpMiddleware ¶
type HttpMiddleware interface {
Handle(context echo.Context, next echo.HandlerFunc) error
}
自定义中间件接口,方便实现自定义的中间件( echo 原始的中间件实现方式,看起来比较难看,仅此而已)
type HttpServer ¶
type HttpServer struct {
*echo.Echo
}
简单包装的一个 http 服务
func (*HttpServer) Start ¶
func (server *HttpServer) Start(address string) error
type ID ¶
type ID int64
func ParseBase2 ¶
func ParseBase32 ¶
func ParseBase36 ¶
func ParseBase58 ¶
func ParseBase64 ¶
func ParseBytes ¶
func ParseInt64 ¶
func ParseIntBytes ¶
func ParseString ¶
type IdProvider ¶
type IdProvider interface {
Provide() ID
}
type JsonProperty ¶
type JsonProperty struct { Name string `json:"name"` // 为了方便使用,兼容数组和 MAP 的存储形式 Type JsonPropertyType `json:"type"` Title *string `json:"title"` // 最好是简短的 Description *string `json:"description"` // 说明,更长更加详细 MaxLength *int64 `json:"maxLength"` // string 最大长度,非负 MinLength *int64 `json:"minLength"` // string 最小长度,非负 Pattern *string `json:"pattern"` // string 必须符合对应的正则表达式 MultipleOf *int64 `json:"multipleOf"` // number integer 给定数字的倍数 Minimum *int64 `json:"minimum"` // number integer 最小值 >= Maximum *int64 `json:"maximum"` // number integer 最大值 <= Properties map[string]*JsonProperty `json:"properties"` Required []string `json:"required"` // object 必须属性 Updateable []string `json:"updateable"` // object 可以被更新的属性 Items *JsonPropertyType `json:"items"` // array 列表项的说明 MinItems *int64 `json:"minItems"` // array 数组最小长度 MaxItems *int64 `json:"maxItems"` // array 数组最大长度 UniqueItems *bool `json:"uniqueItems"` // array 数组每个元素唯一 Enum []any `json:"enum"` Default any `json:"default"` // 该值不用于在验证过程中填充缺失值。文档生成器或表单生成器等非验证工具可能会使用此值提示用户如何使用该值。 Const any `json:"const"` // 常量,固定值 }
json schema 属性描述
type JsonPropertyType ¶
type JsonPropertyType string // json schema 支持的属性类型
var ( JPT_Number JsonPropertyType = "number" // 整数类型 JPT_Integer JsonPropertyType = "integer" // 数值类型 JPT_Boolean JsonPropertyType = "boolean" // 布尔 JPT_String JsonPropertyType = "string" // 字符串 JPT_Object JsonPropertyType = "object" // 对象 JPT_Array JsonPropertyType = "array" // 数组 JPT_Null JsonPropertyType = "null" // 空 JPT_Datetime JsonPropertyType = "datetime" // 时间(扩展定义) )
type JsonSchema ¶
type JsonSchema struct { *JsonProperty Schema *string `json:"$schema"` // 使用的 schema 版本 ID *string `json:"$id"` // }
json schema
func NewJsonSchema ¶
func NewJsonSchema() *JsonSchema
type Logger ¶
type Logger interface { WithField(key string, value interface{}) *logrus.Entry WithFields(fields logrus.Fields) *logrus.Entry WithError(err error) *logrus.Entry Trace(args ...interface{}) Debug(args ...interface{}) Info(args ...interface{}) Print(args ...interface{}) Warn(args ...interface{}) Warning(args ...interface{}) Error(args ...interface{}) Fatal(args ...interface{}) Panic(args ...interface{}) }
type MicroService ¶
type MicroService struct { ID string // 实例唯一 ID Name string // 服务名称 Address string // 可访问地址 Port int // 可访问端口 Env string // 归属的环境 Tags []string // 标签 Metadata map[string]string // 服务注册时附加数据 }
对应微服务一个实例
func (*MicroService) MetaBindToStruct ¶
func (ms *MicroService) MetaBindToStruct(dst any) error
将附加数据绑定到结构体
type OnChangeFunc ¶
type OnChangeFunc func() error
type Options ¶
type Options interface { // option 的使用者可以通过注册 listener 来响应 config 的运行时变更 OnChange(listener OnChangeFunc) }
各个服务的可选参数
type ServiceRegister ¶
type ServiceRegister interface { // 获取 name 服务对应的信息 Get(name string) (*MicroService, error) // 向注册中心注册服务 Register(service *MicroService) error }
注册中心
Source Files ¶
Click to show internal directories.
Click to hide internal directories.