biz_kit

package module
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 1, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

README

go-biz-kit

go-biz-kit 为微服务提供了基础的框架工具,这些工具不同于无业务属性的 pkg,kit 中提供的工具是一整套组合库, 通过这些库组合提供的能力,能够让微服务的开发中能够更集中精力去实现具体的业务。

当前 kit 提供的能力见下文说明。

HTTP/GRPC 框架的自动注入

通过对 protoc-gen-go-grpcprotoc-gen-go-http 进行扩展,为生成的代码添加了基于 FX 的依赖注入能力, 通过生成的接口,减少了接口开发中定义及注册干扰,能让开发者集中在一个文件中去处理微服务接口的开发。

依赖注入

基于 FX 进行封装后提供了 injection 模块,该模块为整个框架提供了依赖注入的能力,开发者可以便捷的 将自己开发的组件提供给其他组件使用,隐藏各个组件自身的复杂度。

基础组件注入

通过依赖注入组件,我们将 Logger/MongoDB/Redis/MySQL 等组件都添加了注入依赖容器的能力,并且各个模块 中都包含了对应的 inject 子模块,这些子模块提供了快速注入全局依赖容器的接口, 如 go-biz-kit/config/inject 中包含了 Inject 函数,提供统一的访问配置中心的能力。

统一配置

go-biz-kit 提供了全局基础配置,这些配置包括了 Logger/MySQL/MongoDB/Redis 等配置信息, 开发者可以更具需要基于这些配置进行个性化配置, 如无个性化需求,则可直接使用这些配置,而无需 关注过多的配置细节

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Database

type Database interface {
	Get() *sqlx.DB
	GetTx(ctx context.Context) (Transaction, context.Context, error)
	WithTx(ctx context.Context, f WithTxFunc) error
}

Database 定义了满足 SQL 规范的的接口,后续用于替换各种数据库实现

type MessageQueue

type MessageQueue interface {
	Get() message.QueueFactory
}

MessageQueue 为对消息队列的封装, 抽象具体的操作后允许用户不关注具体使用的消息队列中间件

type MongoDB

type MongoDB interface {
	Get() *mongo.Database
}

type MySQL

type MySQL interface {
	Get() *sqlx.DB
	GetTx(ctx context.Context) (Transaction, context.Context, error)
	WithTx(ctx context.Context, f WithTxFunc) error
}

MySQL 为简易的 DB 封装层,为后续的优化提供切入点

type Redis

type Redis interface {
	Get() redis.UniversalClient
}

Redis 为对 Redis 客户端的简易包装,为后续的优化提供切入点

type Transaction

type Transaction interface {
	Get() *sqlx.Tx
	// Commit 根据参数决定提交事务或回滚, 存在错误并进行回滚时,如果回滚也发生错误,则会将原始错误和回滚的错误进行组合, 否则会返回业务的错误
	Commit(error) error
}

Transaction 定义了满足 SQL 规范的事务接口

type WithTxFunc

type WithTxFunc = func(ctx context.Context, tx Transaction) error

type WithTxGlobalFunc

type WithTxGlobalFunc func(ctx context.Context) error

Directories

Path Synopsis
common
def
def
encoding
utils

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL