分享一个快速构建 RESTful API的Go 框架snake

栏目: IT技术 · 发布时间: 4年前

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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ARM嵌入式系统开发

ARM嵌入式系统开发

斯洛斯 / 北京航大 / 2005-5 / 75.00元

《ARM嵌入式系统开发:软件设计与优化》从软件设计的角度,全面、系统地介绍了ARM处理器的基本体系结构和软件设计与优化方法。内容包括:ARM处理器基础;ARM/Thumb指令集;C语言与汇编语言程序的设计与优化;基本运算、操作的优化;基于ARM的DSP;异常与中断处理;固件与嵌入式OS;cache与存储器管理;ARMv6体系结构的特点等。全书内容完整,针对各种不同的ARM内核系统结构都有详尽论述,......一起来看看 《ARM嵌入式系统开发》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具