server

package
v1.0.6 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

README

Server Package 优化说明

概述

Server包是HTTP服务的核心,负责管理Echo服务器实例、中间件配置、路由注册和服务器生命周期管理。

优化内容

1. 代码结构优化
  • 模块化设计: 将服务器配置、中间件配置分离到独立文件
  • 清晰的职责分离: 每个方法都有明确的职责
  • 更好的错误处理: 统一的错误处理机制
2. 配置管理优化
config.go - 服务器配置
  • 集中管理服务器配置参数
  • 支持从应用配置自动生成服务器配置
  • 包含超时、调试模式等配置项
middlewares/config.go - 中间件配置
  • 统一的中间件配置管理
  • 支持启用/禁用特定中间件
  • 可配置的日志格式
3. 中间件优化
  • 错误恢复中间件: 防止panic导致服务崩溃
  • 请求日志中间件: 记录请求详情和响应时间
  • 压缩中间件: 自动压缩响应内容
  • CORS中间件: 跨域资源共享配置
  • 权限控制中间件: 基于Casbin的权限管理
4. 路由管理优化
  • 系统路由: 健康检查、路由信息、系统信息
  • 业务路由: 通过依赖注入自动注册
  • 路由分组: 清晰的API路由组织
5. 服务器生命周期优化
  • 优雅启动: 详细的启动日志
  • 优雅关闭: 支持信号处理和超时控制
  • 错误处理: 完善的错误处理和日志记录

新增功能

系统路由
  • GET /api/health - 健康检查
  • GET /api/routes - 路由信息
  • GET /api/info - 系统信息
配置选项
  • 服务器超时配置
  • 中间件启用/禁用
  • 调试模式控制
  • Banner显示控制

使用示例

// 创建服务器实例
server := NewEchoServer(Params{
    Routes:   routers,
    Enforcer: enforcer,
    Cfg:      config,
    Store:    store,
})

// 启动服务器
server.Run(":8080")

性能优化

  • 中间件按需加载
  • 配置缓存
  • 连接池优化
  • 超时控制

安全特性

  • 错误信息不泄露敏感信息
  • 请求日志记录
  • 权限控制集成
  • CORS安全配置

监控和调试

  • 详细的启动/关闭日志
  • 请求响应时间记录
  • 错误统计和报告
  • 健康检查端点

扩展性

  • 模块化的中间件系统
  • 可配置的服务器参数
  • 支持自定义中间件
  • 灵活的配置管理

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EchoServer

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

EchoServer Echo HTTP服务器

func NewEchoServer

func NewEchoServer(p Params) *EchoServer

NewEchoServer 创建Echo服务器实例

func (*EchoServer) Run

func (s *EchoServer) Run(port string)

Run 启动服务器

func (*EchoServer) Server

func (s *EchoServer) Server() *echo.Echo

Server 获取Echo实例

type Params added in v1.0.6

type Params struct {
	fx.In

	Routes   []service.RegisterRouter `group:"routes"`
	Enforcer *casbin.Enforcer
	Cfg      configs.Config
	Store    *configs.Store
}

Params 依赖注入参数

type ServerConfig added in v1.0.6

type ServerConfig struct {
	// 端口
	Port string
	// 读取超时
	ReadTimeout time.Duration
	// 写入超时
	WriteTimeout time.Duration
	// 空闲超时
	IdleTimeout time.Duration
	// 关闭超时
	ShutdownTimeout time.Duration
	// 是否隐藏Banner
	HideBanner bool
	// 是否启用调试模式
	Debug bool
}

ServerConfig 服务器配置

func DefaultServerConfig added in v1.0.6

func DefaultServerConfig() *ServerConfig

DefaultServerConfig 默认服务器配置

func FromAppConfig added in v1.0.6

func FromAppConfig(cfg configs.Config) *ServerConfig

FromAppConfig 从应用配置创建服务器配置

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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