基于golang开源框架 gin封装的api框架
基于 Gin 进行模块化设计的 API 框架,封装了常用功能,操作简单,致力于进行快速的业务研发。比如,jwt 签名验证、zap 日志收集、panic 异常捕获、swagger 文档生成、viper 配置文件解析、gorm 数据库组件、v2.0支持后台管理、casbin权限管理可支持按钮级权限,使用Light Year Admin 模板、支持命令工具生成Model、初始化数据库 等等
项目文档在线文档 在线文章
1 项目简介 1.1 项目介绍个人爱好,业务编码,喜欢的给个star
2 使用说明- golang版本 >= v1.16
下载
使用git克隆本项目
git clone https://github.com/18211167516/Go-Gin-Api.git
cd到cmd目录,编译 然后执行cmd.exe initdb 当然了你要先创建数据库
登录后台
账号:admin
密码:Admin123
贡献指南
issue 仅用于提交 Bug 或 Feature 以及设计相关的内容,其它内容可能会被直接关闭。
pull Request 请先 fork 一份到自己的项目下,不要直接在仓库下建分支。
commit 信息要以[文件名]: 描述信息 的形式填写,例如 README.md: fix xxx bug。
确保 PR 是提交到 dev 分支,而不是 master 分支。
如果是修复 bug,请在 PR 中给出描述信息。
2.1 swagger自动化API文档
2.1.1 安装 swagger
# 启用 Go Modules 功能 go env -w GO111MODULE=on # 配置 GOPROXY 环境变量 go env -w GOPROXY=https://goproxy.io,direct # 使用如下命令下载swag go get -u github.com/swaggo/swag/cmd/swag 2.1.2 生成API文档
swag init
2.2 热编译执行上面的命令后,server目录下会出现docs文件夹,登录http://localhost:8080/swagger/index.html,即可查看swagger文档
go get github.com/pilu/fresh
进入项目执行
fresh
配置文件 是runner.conf
2.3 工具
2.3.1 mysql转model
cd cmd
go build .
./cmd.exe make:model
详细命令
./cmd.exe make:model -h
2.3.2 初始化数据
生成基础表和数据
cd cmd
go build .
./cmd.exe initdb
2.3.3 make:mysql
根据model生成数据表
./cmd.exe make:model -t=Test
2.3.4 make:command
生成command命令
生成make-service命令:同时会将-转成:
./cmd.exe make:command -n=make-service
2.3.5 make:service
生成service
根据app/models/test Test
生成默认文件 TestService.go
./cmd.exe make:service -m=test/Test
生成自定义文件 testSerive.go
./cmd.exe make:service -m=test/Test -f=testService
生成到自定义目录
./cmd.exe make:service -m=test/Test -p=test
会把-转成:
./cmd.exe make:command -n=make-service
3 技术选型
用Gin
快速搭建基础restful风格API,Gin
是一个go语言编写的Web框架
数据校验 go-playground
gin框架内置,已支持错误信息转中文
数据库:采用MySql
(5.6.44)版本,使用gorm
实现对数据库的基本操作。
API文档:使用Swagger
构建自动化文档。
热重启HotStart
,我自己写的一个
配置文件 使用viper
解析
日志:使用logrus
实现日志记录。
权限:使用casbin
实现按钮级权限。
命令行工具:自建命令行支持mysql
转Model
、生成初始化数据。
4. 项目架构
4.1 目录结构
├─app (项目核心目录)
| ├─controller (控制器)
| ├─middleware (中间件)
| ├─models (数据结构层)
| ├─request (数据请求层,定义特殊请求结构体以及数据校验)
| ├─request (数据展示层定义结构体)
| ├─services (服务层)
├─config (配置包)
├─cron (定时脚本)
├─core (內核)
├─docs (swagger文档目录)
├─global (全局变量)
├─initialize (初始化)
├─log (日志文件)
├─routes (路由)
├─static (静态文件包括config目录)
├─templates (模板)
├─tests (测试)
└─tool (工具)
4.2 组件支持
支持Swagger接口文档生成
支持jwt鉴权
支持zap 日志
支持viper 配置文件解析
支持go1.6.0 go:embed特性,打包包含静态文件
支持gorm 数据库组件、支持读写分离,数据库主从
支持web界面 使用 Light Year Admin 模板
支持多角色的RBAC权限控制(支持到按钮级),使用casbin
cmd目录下支持生成model、支持数据库初始化
支持热编译fresh
联系作者
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。