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

发布于 1周前 作者 sinazl 来自 Go语言

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

一款适合于快速开发业务的 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

开发规约

CHANGELOG

谁在用

Discussion

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


更多关于Golang Go语言中分享一款适合快速开发业务的框架,可用于开发API服务,遵循SOLID原则的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

2 回复

学习学习

更多关于Golang Go语言中分享一款适合快速开发业务的框架,可用于开发API服务,遵循SOLID原则的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


在Golang中,若需一款适合快速开发业务、可用于开发API服务且遵循SOLID原则的框架,我强烈推荐Gin、Echo或Fiber。

Gin是一个轻量级的Web框架,专为构建高性能的API而设计。它基于Golang的net/http包,提供了许多有用的功能和中间件,如强大的路由、中间件支持及多种渲染引擎,非常适合快速开发API服务。同时,Gin的简洁性和高效性使其能够很好地遵循SOLID原则,帮助开发者构建健壮、灵活且易于维护的代码结构。

Echo也是一个受欢迎的轻量级API框架,同样专为高性能API设计。它提供了灵活且高效的路由功能、支持各种中间件,并优化了许多关键性能指标。Echo的API设计简洁,易于使用,能够轻松实现SOLID原则中的各项要求。

Fiber则是一个新兴的Web框架,目标成为最快的Golang框架之一。它使用快速的HTTP路由库,具有出色的性能指标,并支持异步处理。Fiber还支持多个中间件,原生支持Etag缓存,同样适合用于快速开发API服务,并能很好地融入SOLID原则。

综上所述,Gin、Echo和Fiber都是Golang中优秀的API开发框架,能够快速开发业务,且都遵循SOLID原则,可根据项目需求选择适合的框架。

回到顶部