https://github.com/eric-guo/sponge-user_server-web-http
Demo of sponge generated user_server, web, http only
https://github.com/eric-guo/sponge-user_server-web-http
ai-generated-code go-sponge golang
Last synced: 5 months ago
JSON representation
Demo of sponge generated user_server, web, http only
- Host: GitHub
- URL: https://github.com/eric-guo/sponge-user_server-web-http
- Owner: Eric-Guo
- Created: 2025-07-27T02:22:05.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-07-27T10:17:43.000Z (8 months ago)
- Last Synced: 2025-07-27T11:36:55.509Z (8 months ago)
- Topics: ai-generated-code, go-sponge, golang
- Language: Go
- Homepage:
- Size: 150 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://deepwiki.com/Eric-Guo/sponge-user_server-web-http)
# user_server (http, monolith)
## Web 生成参数
```bash
sponge web http --module-name=testUserServer --server-name=userServer --project-name=testSponge --db-driver=mysql --db-dsn='root:@(127.0.0.1:3306)/thape_cybros_dev' --db-table=users --extended-api=true --embed=true --out=.
```
## 概述
1. **服务名称与定位**
- 是什么类型的服务?(如:用户管理微服务、订单处理API、数据同步任务等)
- 解决什么问题?(如:提供用户注册/登录能力、处理电商订单生命周期等)
2. **核心功能**
- 用1-3句话概括主要功能。
3. **服务边界**(可选)
- 如果是微服务,说明与其他服务的关系(如:依赖哪些服务/被哪些服务调用)。
## 技术栈
- 编程语言: go
- Web框架: gin
- 配置管理: viper
- 日志: zap
- ORM: gorm
- 数据库: mysql
- 缓存: go-redis
- 监控: prometheus+grafana
- 链路追踪: opentracing+jaeger
- 其他: ...
## 目录结构
```text
.
├─ cmd # 应用程序入口目录
│ └─ user_server # 服务名称
│ ├─ initial # 初始化逻辑(如配置加载、服务初始化等)
│ └─ main.go # 主程序入口文件
├─ configs # 配置文件目录(yaml 格式配置模板)
├─ deployments # 部署相关脚本(二进制、Docker、K8S 部署)
├─ docs # 项目文档(API 文档、设计文档等)
├─ internal # 内部实现代码(对外不可见)
│ ├─ cache # 缓存相关实现(Redis 或本地内存缓存封装)
│ ├─ config # 配置解析和结构体定义
│ ├─ dao # 数据访问层(Database Access Object)
│ ├─ ecode # 错误码定义
│ ├─ handler # 业务逻辑处理层(类似 Controller)
│ ├─ model # 数据模型/实体定义
│ ├─ routers # 路由定义和中间件
│ ├─ server # 服务启动
│ └─ types # 请求/响应结构体定义
├─ scripts # 实用脚本(如代码生成、构建、运行、部署等)
├─ go.mod # Go 模块定义文件(声明依赖)
├─ go.sum # Go 模块校验文件(自动生成)
├─ Makefile # 项目构建自动化脚本
└─ README.md # 项目说明文档
```
代码采用分层架构,完整调用链路如下:
`cmd/user_server/main.go` → `internal/server/http.go` → `internal/routers/router.go` → `internal/handler` → `internal/dao` → `internal/model`
其中 handler 层主要负责 API 处理,若需处理更复杂业务逻辑,建议在 handler 和 dao 之间额外添加业务逻辑层(如 `service`、`logic` 或 `biz` 等,自己定义)。
## 快速开始
### 1. 生成 openapi 文档
```bash
make docs
```
注:仅当新增或修改 API 时需要执行该命令,API 未变更时无需重复执行。
### 2. 编译和运行
```bash
make run
```
### 3. 测试 API
在浏览器访问 [http://localhost:8080/swagger/index.html](http://localhost:8080/swagger/index.html),测试 HTTP API。
## 开发指南
点击查看详细的 [**开发指南**](https://go-sponge.com/zh/guide/web/based-on-sql.html)。
## 部署
- [裸机部署](https://go-sponge.com/zh/deployment/binary.html)
- [Docker 部署](https://go-sponge.com/zh/deployment/docker.html)
- [K8S 部署](https://go-sponge.com/zh/deployment/kubernetes.html)