Documentation
¶
Overview ¶
Package engine 提供网络引擎工厂和注册表。
该模块管理不同 HTTP 框架的引擎实现,支持运行时切换框架。 通过 Factory 接口创建特定框架的组件实例。
核心接口 ¶
- Factory: 引擎工厂接口,用于创建路由器和服务器
- Registry: 引擎注册表,管理所有已注册的引擎工厂
- ServerOption: 服务器配置选项函数类型
支持的引擎 ¶
- StdLib: 标准库 net/http
使用方式 ¶
注册引擎:
engine.GlobalRegistry.Register(myFactory)
创建路由器:
router, err := engine.GlobalRegistry.CreateRouter()
创建服务器:
server, err := engine.GlobalRegistry.CreateServer(
engine.WithHost("0.0.0.0"),
engine.WithPort(8080),
)
Index ¶
- Variables
- type Factory
- type Registry
- func (r *Registry) CreateRouter() (core.Router, error)
- func (r *Registry) CreateServer(opts ...ServerOption) (core.Server, error)
- func (r *Registry) Get(engineType Type) (Factory, error)
- func (r *Registry) GetDefault() Type
- func (r *Registry) HasEngine(engineType Type) bool
- func (r *Registry) ListEngines() []Type
- func (r *Registry) Register(factory Factory)
- func (r *Registry) SetDefault(engineType Type)
- type RouterAdapter
- func (a *RouterAdapter) DELETE(path string, handler core.HandlerFunc)
- func (a *RouterAdapter) GET(path string, handler core.HandlerFunc)
- func (a *RouterAdapter) Group(prefix string) core.Router
- func (a *RouterAdapter) PATCH(path string, handler core.HandlerFunc)
- func (a *RouterAdapter) POST(path string, handler core.HandlerFunc)
- func (a *RouterAdapter) PUT(path string, handler core.HandlerFunc)
- func (a *RouterAdapter) Use(middleware core.MiddlewareFunc)
- type ServerAdapter
- type ServerConfig
- type ServerOption
- type Type
Constants ¶
This section is empty.
Variables ¶
View Source
var GlobalRegistry = NewRegistry()
GlobalRegistry 全局网络引擎注册表。
Functions ¶
This section is empty.
Types ¶
type Factory ¶
type Factory interface {
// Type 返回引擎类型标识。
Type() Type
// CreateRouter 创建路由器实例。
CreateRouter() (core.Router, error)
// CreateServer 创建服务器实例。
CreateServer(opts ...ServerOption) (core.Server, error)
}
Factory 网络引擎工厂接口。
实现此接口可以创建特定网络框架的组件实例。
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry 网络引擎注册表。
管理所有已注册的网络引擎工厂,支持运行时切换。
func (*Registry) CreateRouter ¶
CreateRouter 使用默认引擎创建路由器。
func (*Registry) CreateServer ¶
func (r *Registry) CreateServer(opts ...ServerOption) (core.Server, error)
CreateServer 使用默认引擎创建服务器。
type RouterAdapter ¶
type RouterAdapter struct {
// contains filtered or unexported fields
}
RouterAdapter 将不同框架的路由器适配为统一的 Router 接口。
func NewRouterAdapter ¶
func NewRouterAdapter( get func(path string, handler core.HandlerFunc), post func(path string, handler core.HandlerFunc), put func(path string, handler core.HandlerFunc), delete func(path string, handler core.HandlerFunc), patch func(path string, handler core.HandlerFunc), group func(prefix string) core.Router, use func(middleware core.MiddlewareFunc), ) *RouterAdapter
NewRouterAdapter 创建路由器适配器。
func (*RouterAdapter) DELETE ¶
func (a *RouterAdapter) DELETE(path string, handler core.HandlerFunc)
DELETE 注册 DELETE 路由。
func (*RouterAdapter) GET ¶
func (a *RouterAdapter) GET(path string, handler core.HandlerFunc)
GET 注册 GET 路由。
func (*RouterAdapter) PATCH ¶
func (a *RouterAdapter) PATCH(path string, handler core.HandlerFunc)
PATCH 注册 PATCH 路由。
func (*RouterAdapter) POST ¶
func (a *RouterAdapter) POST(path string, handler core.HandlerFunc)
POST 注册 POST 路由。
func (*RouterAdapter) PUT ¶
func (a *RouterAdapter) PUT(path string, handler core.HandlerFunc)
PUT 注册 PUT 路由。
type ServerAdapter ¶
type ServerAdapter struct {
// contains filtered or unexported fields
}
ServerAdapter 将不同框架的服务器适配为统一的 Server 接口。
func NewServerAdapter ¶
func NewServerAdapter( start func() error, stop func(ctx context.Context) error, setHandler func(handler any), use func(m any), ) *ServerAdapter
NewServerAdapter 创建服务器适配器。
func (*ServerAdapter) SetHandler ¶
func (a *ServerAdapter) SetHandler(handler any)
SetHandler 设置处理器。
type ServerConfig ¶
type ServerConfig struct {
// Host 监听地址。
Host string
// Port 监听端口。
Port int
// ReadTimeout 读取超时时间(秒)。
ReadTimeout int
// WriteTimeout 写入超时时间(秒)。
WriteTimeout int
// IdleTimeout 空闲超时时间(秒)。
IdleTimeout int
// TLSCertFile TLS 证书文件路径。
TLSCertFile string
// TLSKeyFile TLS 密钥文件路径。
TLSKeyFile string
}
ServerConfig 服务器配置。
type ServerOption ¶
type ServerOption func(*ServerConfig)
ServerOption 服务器配置选项函数类型。
func WithWriteTimeout ¶
func WithWriteTimeout(timeout int) ServerOption
WithWriteTimeout 设置写入超时时间(秒)。
Click to show internal directories.
Click to hide internal directories.