# go-zero **Repository Path**: chenbool/go-zero ## Basic Information - **Project Name**: go-zero - **Description**: No description available - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-17 - **Last Updated**: 2025-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go-zero 学习项目 ## 项目简介 go-zero 是一个集成了多种工程实践的微服务框架,适用于高并发、分布式系统开发。本项目基于 Go 语言开发,使用 go-zero 框架(v1.9.2)构建,旨在通过实际示例演示 go-zero 框架的各种特性和最佳实践。 ## 目录结构 ``` . ├── README.en.md # 英文说明文档 ├── README.md # 中文说明文档 ├── go.mod # Go 模块定义文件 ├── go.sum # Go 依赖校验文件 ├── install.md # 环境安装指南 ├── 模板定制化.md # 代码生成模板定制化说明 ├── Etcd_install.md # Etcd 安装配置指南 ├── api_study/ # API 学习示例目录 ├── common/ # 公共组件目录 │ ├── response/ # 统一响应封装 │ └── jwts/ # JWT 认证处理 ├── model_study/ # 数据库操作学习示例目录 │ ├── sqlx/ # 使用 sqlx 操作数据库 │ ├── user/ # 基础用户模型示例 │ └── user_gorm/ # 结合 GORM 操作数据库 ├── rpc_user/ # RPC 用户服务示例目录 │ ├── user/ # 基础 RPC 服务 │ ├── user_api_rpc/ # API 调用 RPC 服务 │ ├── user_group/ # RPC 服务分组 │ └── user_gorm/ # RPC 结合 GORM ├── user/ # 用户服务目录 │ ├── api/ # 基础 API 服务示例 │ ├── api_v2/ # 统一响应封装 API 示例 │ ├── api_prefix/ # 路由前缀配置示例 │ ├── api_jwt/ # JWT 认证示例 │ └── rpc/ # 用户 RPC 服务 └── video/ # 视频服务目录 └── api/ # 调用 RPC 服务的 API 示例 ``` ## 项目模块说明 ### 1. 基础 API 服务 (user/api) 演示了 go-zero API 服务的基本用法,包括 API 语法、数据结构定义、服务路由配置等。 主要特性: - API DSL 语法使用 - 代码自动生成 - 基础请求处理流程 ### 2. 统一响应封装 (user/api_v2) 展示了如何实现统一的 API 响应格式,避免在每个接口中重复定义 code、data、msg 字段。 主要特性: - 统一响应结构体设计 - 响应处理函数封装 - Handler 层集成统一响应 ### 3. 路由前缀配置 (user/api_prefix) 演示了如何为 API 服务配置统一的路由前缀,使接口路径更加规范和易管理。 主要特性: - `@server(prefix: /api/users)` 指令使用 - 路径规范化管理 - 服务分组配置 ### 4. JWT 认证 (user/api_jwt) 实现了基于 JWT 的用户身份认证机制,保护需要授权访问的 API 接口。 主要特性: - JWT Token 生成与解析 - `@server(jwt: Auth)` 指令使用 - 自定义认证失败响应 - 用户信息在上下文中的传递 ### 5. RPC 服务 (user/rpc) 演示了如何创建和实现 gRPC 服务,包括 Protocol Buffers 定义、代码生成和业务逻辑实现。 主要特性: - Proto3 语法使用 - gRPC 服务实现 - 服务注册与发现 (Etcd) - 客户端调用示例 ### 6. 微服务调用 (video/api) 展示了微服务架构中 API 服务调用 RPC 服务的完整流程。 主要特性: - 服务间通信机制 - Etcd 服务发现集成 - 配置文件管理 - 错误处理传递 ### 7. 公共组件 (common) 提供了项目中可复用的公共组件和工具函数。 包含模块: - response: 统一响应封装 - jwts: JWT 认证处理 ### 8. 模板定制化 介绍了如何自定义 goctl 代码生成模板,满足项目特定需求。 主要特性: - 模板初始化 - Handler 模板定制 - 代码生成流程优化 ### 9. 数据库操作 (model_study) 提供了多种数据库操作方式的示例,包括原生 SQL、sqlx 和 GORM。 主要特性: - 原生 SQL 操作 - sqlx 工具使用 - GORM ORM 集成 ### 10. RPC 高级特性 (rpc_user) 展示了 RPC 服务的高级特性和使用方式。 包含模块: - 基础 RPC 服务 (rpc_user/user) - API 调用 RPC 服务 (rpc_user/user_api_rpc) - RPC 服务分组 (rpc_user/user_group) - RPC 结合 GORM (rpc_user/user_gorm) ## 软件架构 基于 Go 语言开发,使用 go-zero 框架(v1.9.2)构建微服务架构: - API 网关层:处理 HTTP 请求 - RPC 服务层:实现业务逻辑 - 服务注册与发现:Etcd - 统一认证:JWT - 配置管理:YAML 文件 - 数据库操作:GORM/sqlx ## 安装教程 请参考 [install.md](install.md) 文件获取详细的环境安装指南。 ## 使用说明 1. 创建 API 服务: `goctl api new api` 2. 创建 RPC 服务: `goctl rpc new rpc` 3. 启动服务: `go run api.go` 4. 代码生成: `goctl template init` ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request