{"id":18431272,"url":"https://github.com/zhan3333/go-framework","last_synced_at":"2025-04-07T18:32:38.210Z","repository":{"id":42701995,"uuid":"235243004","full_name":"zhan3333/go-framework","owner":"zhan3333","description":"基于 gin 框架 API 项目脚手架 / Golang gin framework scaffolding","archived":false,"fork":false,"pushed_at":"2022-04-06T16:51:01.000Z","size":501,"stargazers_count":27,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-22T22:24:52.399Z","etag":null,"topics":["cron","golang","mysql","scaffold"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhan3333.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-21T02:51:35.000Z","updated_at":"2024-06-29T02:48:54.000Z","dependencies_parsed_at":"2022-09-02T06:00:50.658Z","dependency_job_id":null,"html_url":"https://github.com/zhan3333/go-framework","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhan3333%2Fgo-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhan3333%2Fgo-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhan3333%2Fgo-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhan3333%2Fgo-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhan3333","download_url":"https://codeload.github.com/zhan3333/go-framework/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247707402,"owners_count":20982778,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cron","golang","mysql","scaffold"],"created_at":"2024-11-06T05:24:10.508Z","updated_at":"2025-04-07T18:32:37.920Z","avatar_url":"https://github.com/zhan3333.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-framework\n\ngin 项目脚手架，包含完整的应用实例，清晰的依赖关系。\n\n## Getting Help\n\nEmail: grianchan@gmail.com\n\n## Feature\n\n- 使用 `GORM` v2\n- viper toml 配置文件加载与映射\n- 命令辅助开发调试\n    - `server` 启动 http 服务\n    - `route list` 显示注册的路由列表\n- gin 与中间件\n- 完整的项目实例\n- 自定义控制器 context\n- 单元测试支持加载框架，提供辅助 api 测试方法\n- 优秀的测试代码\n  - 中间件测试\n  - 接口测试\n  - 单元测试\n\n## 如何运行\n\n前提：项目使用 module 模式运行。\n\n### 配置 config/config.toml\n\n```shell script\ncp configs/default.tmol configs/local.toml\n```\n\n### 运行\n\n```shell script\ngo run main.go server --config=configs/local.toml\n```\n\n### 编译\n\n- `go build -o lgo main.go`\n- `./lgo server --config=configs/local.toml` // 固定读取 config 目录下的配置文件\n\n### 测试\n\n配置 env LGO_TEST_FILE={path}/configs/local.toml，测试中会自动加载框架\n\n默认开启端口 `http://127.0.0.1:8080` 访问服务\n\n## Roadmap\n\n- [x] 数据库\n- [x] http 接口测试\n- [x] 加载配置\n- [x] 日志\n- [x] 缓存\n- [x] 数据库\n- [x] 路由结构\n- [x] GORM\n- [x] Swagger\n- [x] 中间件\n- [x] 注册自定义表单验证规则\n- [x] faker 结构体数据填充\n- [x] faker 数据填充\n- [] 中间件\n    - [x] JWT 中间件加入\n    - [x] cors 跨域中间件 (github.com/gin-contrib/cors)\n    - [] 请求速率 rate limiter 中间件\n- [x] pprof 性能监控 (使用 `go tool pprof http://localhost:8090/debug/pprof/heap` 访问)\n- [x] 配置模块改用 github.com/BurntSushi/toml\n- [x] 使用 context 传递上下文\n- [] grpc 服务端\n- [] grpc 客户端\n- [] kafka 消息队列\n- [x] 升级到 go1.18\n- [x] 使用 cobra 创建命令行工具\n- [] github Action CI\n\n## 相关文档\n\n[gin 框架](https://github.com/gin-gonic/gin)\n\n[faker 结构体数据填充](https://github.com/bxcodec/faker)\n\n[gorm ORM](https://gorm.io/zh_CN/docs/)\n\n[log 日志](https://github.com/sirupsen/logrus)\n\n[validate 参数校验](https://godoc.org/gopkg.in/go-playground/validator.v9)\n\n[Redis](https://github.com/go-redis/redis)\n\n[Swag](https://github.com/swaggo/swag)\n\n[gin 官方中间件](https://github.com/gin-contrib)\n\n[gin-pprof](https://github.com/gin-contrib/pprof)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhan3333%2Fgo-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhan3333%2Fgo-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhan3333%2Fgo-framework/lists"}