All Projects → 18211167516 → Go-Gin-Api

18211167516 / Go-Gin-Api

Licence: MIT License
基于golang开源框架 gin封装的api框架

Programming Languages

javascript
184084 projects - #8 most used programming language
go
31211 projects - #10 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to Go-Gin-Api

pink-lady
a template project of gin app.
Stars: ✭ 44 (+4.76%)
Mutual labels:  zap, viper, gin, gorm
Gin Web
由gin + gorm + jwt + casbin组合实现的RBAC权限管理脚手架Golang版, 搭建完成即可快速、高效投入业务开发
Stars: ✭ 107 (+154.76%)
Mutual labels:  viper, gin, rbac, casbin
Go Gin Api
基于 Gin 进行模块化设计的 API 框架,封装了常用功能,使用简单,致力于进行快速的业务研发。比如,支持 cors 跨域、jwt 签名验证、zap 日志收集、panic 异常捕获、trace 链路追踪、prometheus 监控指标、swagger 文档生成、viper 配置文件解析、gorm 数据库组件、gormgen 代码生成工具、graphql 查询语言、errno 统一定义错误码、gRPC 的使用 等等。
Stars: ✭ 730 (+1638.1%)
Mutual labels:  swagger, viper, gin, gorm
golang-example-app
Example application
Stars: ✭ 138 (+228.57%)
Mutual labels:  zap, viper, gorm, casbin
Gorm Adapter
Gorm adapter for Casbin
Stars: ✭ 373 (+788.1%)
Mutual labels:  rbac, gorm, casbin
Go Admin
go web api,包含gin+gorm+jwt+rbac等。
Stars: ✭ 298 (+609.52%)
Mutual labels:  gin, rbac, casbin
Ugin
UGin is an API boilerplate written in Go (Golang) with Gin Framework.
Stars: ✭ 110 (+161.9%)
Mutual labels:  viper, gin, gorm
Go Admin
基于Gin + Vue + Element UI的前后端分离权限管理系统脚手架(包含了:多租户的支持,基础用户管理功能,jwt鉴权,代码生成器,RBAC资源控制,表单构建,定时任务等)3分钟构建自己的中后台项目;文档:https://doc.go-admin.dev Demo: https://www.go-admin.dev Antd beta版本:https://preview.go-admin.dev
Stars: ✭ 5,439 (+12850%)
Mutual labels:  gin, gorm, casbin
iris-admin
Web admin for iris-go framwork
Stars: ✭ 602 (+1333.33%)
Mutual labels:  gin, gorm, casbin
Snake
🐍 一款小巧的基于Go构建的开发框架,可以快速构建API服务或者Web网站进行业务开发,遵循SOLID设计原则
Stars: ✭ 615 (+1364.29%)
Mutual labels:  swagger, gin, gorm
gt-crud
gin+gorm+mysql+api[两步自动crud]
Stars: ✭ 15 (-64.29%)
Mutual labels:  gin, gorm, casbin
Go Gin Example
An example of gin
Stars: ✭ 4,992 (+11785.71%)
Mutual labels:  swagger, gin, gorm
ginadmin
基于Gin开发的后台管理系统,集成了、数据库操作、日志管理、权限分配管理、多模板页面、自动分页器、数据库迁移和填充、Docker集成部署等功能、静态资源打包
Stars: ✭ 149 (+254.76%)
Mutual labels:  gin, gorm, casbin
kuu
Modular Go Web Framework based on GORM and Gin.
Stars: ✭ 15 (-64.29%)
Mutual labels:  gin, gorm
flask-authz
Use Casbin in Flask, Casbin is a powerful and efficient open-source access control library.
Stars: ✭ 100 (+138.1%)
Mutual labels:  rbac, casbin
ego
Go微服务.A simple and component-based microservice kit for go.
Stars: ✭ 765 (+1721.43%)
Mutual labels:  gin, gorm
laravel-casbin
This repository has moved to https://github.com/php-casbin/laravel-authz
Stars: ✭ 42 (+0%)
Mutual labels:  rbac, casbin
midwayjs-crud
基于 Typescript+MidwayJs+Nacos 的微服务开发架构
Stars: ✭ 45 (+7.14%)
Mutual labels:  rbac, casbin
sqlx-adapter
Asynchronous casbin adapter for mysql, postgres, sqlite based on sqlx-rs
Stars: ✭ 27 (-35.71%)
Mutual labels:  rbac, casbin
iam
企业级的 Go 语言实战项目:认证和授权系统
Stars: ✭ 1,900 (+4423.81%)
Mutual labels:  gin, gorm

Go-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
  1. 下载
  • 使用git克隆本项目
    git clone https://github.com/18211167516/Go-Gin-Api.git
  1. cd到cmd目录,编译 然后执行cmd.exe initdb 当然了你要先创建数据库

  2. 登录后台

账号:admin
密码:Admin123
  1. 贡献指南
  • 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

执行上面的命令后,server目录下会出现docs文件夹,登录http://localhost:8080/swagger/index.html,即可查看swagger文档

2.2 热编译

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实现按钮级权限。
  • 命令行工具:自建命令行支持mysqlModel、生成初始化数据。

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 组件支持

  1. 支持Swagger接口文档生成
  2. 支持jwt鉴权
  3. 支持zap 日志
  4. 支持viper 配置文件解析
  5. 支持go1.6.0 go:embed特性,打包包含静态文件
  6. 支持gorm 数据库组件、支持读写分离,数据库主从
  7. 支持web界面 使用 Light Year Admin 模板
  8. 支持多角色的RBAC权限控制(支持到按钮级),使用casbin
  9. cmd目录下支持生成model、支持数据库初始化
  10. 支持热编译fresh

联系作者

my

项目图片

login

login

login

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].