snake
snake 一款适合于快速开发业务的 Go 框架,主要是提供API服务。
技术栈
- 框架路由使用 gin 路由
- 中间件使用 gin 框架的中间件
- 数据库组件 gorm
- 文档使用 swagger 生成
- 配置文件解析库 viper
- 使用 JWT 进行身份鉴权认证
- 校验器 validator 也是 gin 框架默认的校验器,当前最新是v9版本
- 任务调度 cron
- 包管理工具 go module
- 测试框架 goConvey
- CI/CD Github Actions
特性
- 遵循 RESTful API 设计规范
- 基于 GIN WEB 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、请求频率限制、追踪 ID 等)
- 基于 GORM 的数据库存储
- JWT 认证
- 支持 Swagger 文档(基于 swaggo )
- 使用 make 来管理Go工程
- 使用 shell(admin.sh) 脚本来管理进程
- 支持多环境配置
目录结构
├── Makefile # 项目管理文件 ├── admin.sh # 进程的start|stop|status|restart控制文件 ├── conf # 配置文件统一存放目录 ├── config # 专门用来处理配置和配置文件的Go package ├── db.sql # 在部署新环境时,可以登录 MySQL 客户端,执行source db.sql创建数据库和表 ├── docs # swagger文档,执行 swag init 生成的 ├── handler # 类似MVC架构中的C,用来读取输入,并将处理流程转发给实际的处理函数,最后返回结果 ├── log # 存放日志的目录 ├── main.go # 项目入口文件 ├── model # 数据库model ├── pkg # 一些封装好的package ├── repository # 数据访问层 ├── router # 路由及中间件目录 ├── service # 业务逻辑封装 ├── schedule # 任务调度配置目录 ├── util # 业务 工具 包 └── wrktest.sh # API 性能测试脚本
错误码设计
启动项目
// 下载依赖 make dep // 编译项目 make build // 本地环境 cp config.sample.yaml config.local.yaml // 运行 ./snake -c conf/config.local.yaml
常用命令
- make help 查看帮助
- make dep 下载go依赖包
- make build 编译项目
- make swag-init 生成接口文档(需要重新编译)
- make test-coverage 生成测试覆盖
- make lint 检查代码规范
模块
- 用户(示例)
接口文档
http://localhost:8080/swagger/index.html
谁在用
Discussion
License
MIT. See the LICENSE file for details.
以上所述就是小编给大家介绍的《分享一个快速构建 RESTful API的Go 框架snake》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 测试框架原理,构建成功的基石
- Golang构建简单web框架
- [译] 构建微服务的十大 Go 框架/库
- 【02-中间件】构建go web框架
- asp.net mvc构建自己的源码框架
- 前端下半场:构建跨框架的 UI 库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。