🚀
统一的服务器框架
完整的服务器生命周期管理,包括传输协调和健康监控
全面的 Go 微服务框架,为构建可扩展微服务提供统一、生产就绪的基础。
📖 完整文档 | English Docs
pkg/server/ - 基础服务器框架和生命周期管理pkg/transport/ - HTTP/gRPC 传输协调层pkg/middleware/ - 可配置的中间件堆栈pkg/discovery/ - 服务发现集成examples/ - 简单的入门示例internal/switserve/ - 用户管理参考服务internal/switauth/ - 带 JWT 的身份验证服务internal/switctl/ - CLI 工具实现git clone https://github.com/innovationmech/swit.git
cd swit
go mod downloadpackage main
import (
"context"
"net/http"
"github.com/gin-gonic/gin"
"github.com/innovationmech/swit/pkg/server"
)
type MyService struct{}
func (s *MyService) RegisterServices(registry server.BusinessServiceRegistry) error {
return registry.RegisterBusinessHTTPHandler(&MyHTTPHandler{})
}
type MyHTTPHandler struct{}
func (h *MyHTTPHandler) RegisterRoutes(router interface{}) error {
ginRouter := router.(*gin.Engine)
ginRouter.GET("/hello", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": "来自 Swit 的问候!"})
})
return nil
}
func (h *MyHTTPHandler) GetServiceName() string {
return "my-service"
}
func main() {
config := &server.ServerConfig{
ServiceName: "my-service",
HTTP: server.HTTPConfig{Port: "8080", Enabled: true},
GRPC: server.GRPCConfig{Enabled: false},
}
service := &MyService{}
baseServer, _ := server.NewBusinessServerCore(config, service, nil)
ctx := context.Background()
baseServer.Start(ctx)
defer baseServer.Shutdown()
select {} // 保持运行
}go run main.go
curl http://localhost:8080/hello# HTTP 服务
cd examples/simple-http-service && go run main.go
# gRPC 服务
cd examples/grpc-service && go run main.go
# 全功能服务
cd examples/full-featured-service && go run main.go# 构建所有服务
make build
# 运行服务
./bin/swit-serve # 用户管理 (HTTP: 9000, gRPC: 10000)
./bin/swit-auth # 身份验证 (HTTP: 9001, gRPC: 50051)
./bin/switctl --help # CLI 工具# 完整设置
make setup-dev
# 快速设置
make setup-quick# 构建
make build # 完整构建
make build-dev # 快速构建
# 测试
make test # 所有测试
make test-dev # 快速测试
make test-coverage # 覆盖率报告
# API 开发
make proto # 生成 protobuf 代码
make swagger # 生成 API 文档
# 代码质量
make tidy # 整理模块
make format # 格式化代码
make quality # 质量检查# 构建镜像
make docker
# 使用 Docker Compose 运行
docker-compose up -d
# 或单独运行
docker run -p 9000:9000 -p 10000:10000 swit-serve:latest
docker run -p 9001:9001 swit-auth:latestmake setup-devmake test请在贡献前阅读我们的行为准则。
MIT 许可证 - 详见 LICENSE 文件
完整的文档、示例和高级用法,请访问 innovationmech.github.io/swit/zh