go-snake 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
go-snake 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
go-snake 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
开发语言 Google Go SHELL
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 如来神掌
适用人群 未知
收录时间 2020-04-10

软件简介

一款适合于快速开发业务的 Go 框架,主要是提供 API 服务。

技术栈

  • 框架路由使用 gin 路由
  • 中间件使用 gin 框架的中间件
  • 数据库组件 gorm
  • 文档使用 swagger 生成
  • 配置文件解析库 viper
  • 使用 JWT 进行身份鉴权认证
  • 校验器 validator 也是 gin 框架默认的校验器,当前最新是v9版本
  • 任务调度 cron
  • 包管理工具 go module
  • 测试框架 goConvey
  • CI/CD Github Actions
  • 容器化 Docker

特性

  • 遵循 RESTful API 设计规范
  • 基于 GIN WEB 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、请求频率限制、追踪 ID 等)
  • 基于 GORM 的数据库存储
  • JWT 认证
  • 支持 Swagger 文档(基于swaggo)
  • 使用 make 来管理Go工程
  • 使用 shell(admin.sh) 脚本来管理进程
  • 支持多环境运行
  • todo: 单元测试(基于net/http/httptest包,覆盖所有接口层的测试)
  • todo: 使用github actions 进行CI/CD
  • todo: 使用docker进行快速部署

目录结构

├── 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 检查代码规范
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
2020/04/29 10:15

go-snake 框架 1.0.2 发布喽

本次主要更新内容: 新增 健康检查接口,便于对应用进行探活检测 新增 metrics接口,便于prometheus进行监控 新增 scripts目录,将各种脚本文件统一放到此目录 新增 schedule目录,可以配置需要跑的计划任务 新增 支持发送邮件模块 优化 main.go 更新 在repo README 中增加使用建议 更多更新日志可以看这里:https://github.com/1024casts/snake/blob/master/CHANGELOG.md...

0
5
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
Google Go 权限许可和访问控制问题漏洞
权限管理不当
Google Go是美国谷歌(Google)公司的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 Google go 存在权限许可和访问控制问题漏洞,该漏洞源于系统调用中的faccessat存在检查错误。
CVE-2022-29526 MPS-2022-9049
2023-12-20 19:20
Gin 安全漏洞
下载代码缺少完整性检查
Gin是Marius Küng个人开发者的一个使用 Electron 构建的小型 JavaScript Markdown 编辑器。 Gin存在安全漏洞,该漏洞源于Context.FileAttachment 函数的文件名参数未正确清理,攻击者利用该漏洞可以通过恶意制作的附件文件名修改 Content-Disposition 标头。
CVE-2023-29401 MPS-2023-9711
2023-12-20 19:20
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
0 评论
16 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部