apiserver

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2025 License: MIT Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// GRPCServerMode 定义 gRPC 服务模式.
	// 使用 gRPC 框架启动一个 gRPC 服务器.
	GRPCServerMode = "grpc"
	// GRPCServerMode 定义 gRPC + HTTP 服务模式.
	// 使用 gRPC 框架启动一个 gRPC 服务器 + HTTP 反向代理服务器.
	GRPCGatewayServerMode = "grpc-gateway"
	// GinServerMode 定义 Gin 服务模式.
	// 使用 Gin Web 框架启动一个 HTTP 服务器.
	GinServerMode = "gin"
)

Variables

This section is empty.

Functions

func InitializeWebServer added in v1.0.0

func InitializeWebServer(config *Config) (server.Server, error)

func InstallGenericAPI added in v1.0.0

func InstallGenericAPI(engine *gin.Engine)

InstallGenericAPI 注册业务无关的路由,例如 pprof、404 处理等.

func NewAuthnWhiteListMatcher added in v1.0.0

func NewAuthnWhiteListMatcher() selector.Matcher

NewAuthnWhiteListMatcher 创建认证白名单匹配器.

func NewAuthzWhiteListMatcher added in v1.0.0

func NewAuthzWhiteListMatcher() selector.Matcher

NewAuthzWhiteListMatcher 创建授权白名单匹配器.

func NewWebServer added in v1.0.0

func NewWebServer(serverMode string, serverConfig *ServerConfig) (server.Server, error)

func ProvideDB added in v1.0.0

func ProvideDB(cfg *Config) (*gorm.DB, error)

ProvideDB 根据配置提供一个数据库实例。

Types

type Config

type Config struct {
	ServerMode        string
	JWTKey            string
	Expiration        time.Duration
	EnableMemoryStore bool
	TLSOptions        *genericoptions.TLSOptions
	HTTPOptions       *genericoptions.HTTPOptions
	GRPCOptions       *genericoptions.GRPCOptions
	MySQLOptions      *genericoptions.MySQLOptions
}

Config 配置结构体,用于存储应用相关的配置. 不用 viper.Get,是因为这种方式能更加清晰的知道应用提供了哪些配置项.

func (*Config) NewDB added in v1.0.0

func (cfg *Config) NewDB() (*gorm.DB, error)

NewDB 创建一个 *gorm.DB 实例.

func (*Config) NewUnionServer

func (cfg *Config) NewUnionServer() (*UnionServer, error)

NewUnionServer 根据配置创建联合服务器.

type ServerConfig added in v1.0.0

type ServerConfig struct {
	// contains filtered or unexported fields
}

ServerConfig 包含服务器的核心依赖和配置.

func (*ServerConfig) InstallRESTAPI added in v1.0.0

func (c *ServerConfig) InstallRESTAPI(engine *gin.Engine)

注册 API 路由。路由的路径和 HTTP 方法,严格遵循 REST 规范.

func (*ServerConfig) NewGRPCServerOr added in v1.0.0

func (c *ServerConfig) NewGRPCServerOr() (server.Server, error)

NewGRPCServerOr 创建并初始化 gRPC 或者 gRPC + gRPC-Gateway 服务器. 在 Go 项目开发中,NewGRPCServerOr 这个函数命名中的 Or 一般用来表示“或者”的含义, 通常暗示该函数会在两种或多种选择中选择一种可能性。具体的含义需要结合函数的实现 或上下文来理解。以下是一些可能的解释:

  1. 提供多种构建方式的选择
  2. 处理默认值或回退逻辑
  3. 表达灵活选项

func (*ServerConfig) NewGinServer added in v1.0.0

func (c *ServerConfig) NewGinServer() server.Server

NewGinServer 初始化一个新的 Gin 服务器实例.

type UnionServer

type UnionServer struct {
	// contains filtered or unexported fields
}

UnionServer 定义一个联合服务器. 根据 ServerMode 决定要启动的服务器类型.

联合服务器分为以下 2 大类:

  1. Gin 服务器:由 Gin 框架创建的标准的 REST 服务器。根据是否开启 TLS, 来判断启动 HTTP 或者 HTTPS;
  2. GRPC 服务器:由 gRPC 框架创建的标准 RPC 服务器
  3. HTTP 反向代理服务器:由 grpc-gateway 框架创建的 HTTP 反向代理服务器。 根据是否开启 TLS,来判断启动 HTTP 或者 HTTPS;

HTTP 反向代理服务器依赖 gRPC 服务器,所以在开启 HTTP 反向代理服务器时,会先启动 gRPC 服务器.

func (*UnionServer) Run

func (s *UnionServer) Run() error

Run 运行应用.

type UserRetriever added in v1.0.0

type UserRetriever struct {
	// contains filtered or unexported fields
}

UserRetriever 定义一个用户数据获取器. 用来获取用户信息.

func (*UserRetriever) GetUser added in v1.0.0

func (r *UserRetriever) GetUser(ctx context.Context, userID string) (*model.UserM, error)

GetUser 根据用户 ID 获取用户信息.

Directories

Path Synopsis
biz
Package biz is the place where you can implements more complex business logic.
Package biz is the place where you can implements more complex business logic.
handler
pkg
nolint: dupl
nolint: dupl

Jump to

Keyboard shortcuts

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