跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 分享一款适合于快速开发业务的 Go 框架,可用于开发 API 服务,遵循 SOLID 原则
未分類
15 5 月 2020

分享一款适合于快速开发业务的 Go 框架,可用于开发 API 服务,遵循 SOLID 原则

分享一款适合于快速开发业务的 Go 框架,可用于开发 API 服务,遵循 SOLID 原则

資深大佬 : qloog 3

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

项目地址

https://github.com/1024casts/snake

技术栈

  • 框架路由使用 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                     # 项目管理文件 ├── 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                     # 任务调度配置目录 └── scripts                      # 存放用于执行各种构建,安装,分析等操作的脚本 

下载安装

# 进入到自己的开发目录,下载安装即可,可以不用是 GOPATH git clone https://github.com/1024casts/snake 

快速开始

TIPS: 需要本地安装数据库和 redis

// 进入到下载目录 cd snake  // 生成本地环境配置文件 cp config.sample.yaml config.local.yaml  // 编译 make build  // 运行 ./scripts/admin.sh start 

常用命令

  • make help 查看帮助
  • make dep 下载 go 依赖包
  • make build 编译项目
  • make swag-init 生成接口文档(需要重新编译)
  • make test-coverage 生成测试覆盖
  • make lint 检查代码规范

模块

  • 用户(示例)

接口文档

http://localhost:8080/swagger/index.html

开发规约

  • 配置说明
  • 错误码设计
  • service 的使用规则
  • repository 的使用规则
  • cache 使用说明

CHANGELOG

  • 更新日志

谁在用

  • 1024 课堂

Discussion

  • Issue: https://github.com/1024casts/snake/issues

欢迎大家一起讨论、交流,方便的话可以给个 star 。 https://github.com/1024casts/snake

大佬有話說 (1)

  • 資深大佬 : vtwoextb

    学习学习

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具