go-gin-api

command module
v0.0.0-...-9c50ee6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 8, 2024 License: MIT Imports: 11 Imported by: 0

README

关于

go-gin-api 是基于 Gin 进行模块化设计的 API 框架,封装了常用的功能,使用简单,致力于进行快速的业务研发,同时增加了更多限制,约束项目组开发成员,规避混乱无序及自由随意的编码。

供参考学习,线上使用请谨慎!

集成组件:

  1. 支持 rate 接口限流
  2. 支持 panic 异常时邮件通知
  3. 支持 cors 接口跨域
  4. 支持 Prometheus 指标记录
  5. 支持 Swagger 接口文档生成
  6. 支持 GraphQL 查询语言
  7. 支持 trace 项目内部链路追踪
  8. 支持 pprof 性能剖析
  9. 支持 errno 统一定义错误码
  10. 支持 zap 日志收集
  11. 支持 viper 配置文件解析
  12. 支持 gorm 数据库组件
  13. 支持 go-redis 组件
  14. 支持 RESTful API 返回值规范
  15. 支持 生成数据表 CURD、控制器方法 等代码生成器
  16. 支持 cron 定时任务,在后台可界面配置
  17. 支持 websocket 实时通讯,在后台有界面演示
  18. 支持 web 界面,使用的 Light Year Admin 模板

文档索引(可加入交流群)

快速启动

MySQL 初始化

create database go_gin_api;

create user 'root'@'127.0.0.1' identified by '123456';

grant create,select,insert,update,delete on go_gin_api.* to 'root'@'127.0.0.1';

生成 graphql 代码

printf '// +build tools\npackage tools\nimport (_ "github.com/99designs/gqlgen"\n _ "github.com/99designs/gqlgen/graphql/introspection")' | gofmt > tools.go
go run github.com/99designs/gqlgen init
go mod tidy
go run github.com/99designs/gqlgen
错误处理
generating core failed: unable to load github.com/nxsre/go-gin-api/internal/graph/model - make sure you're using an import path to a package that exists
修改 gqlgen.yml 重新运行 gqlgen
vi gqlgen.yml
...
# gqlgen will search for any type names in the schema in these go packages
# if they match it will use them, otherwise it will generate them.
#autobind:
#   - "github.com/nxsre/go-gin-api/internal/graph/model"
...
go run github.com/99designs/gqlgen

目录结构

.
├── assets                ## 静态资源
│   ├── bootstrap
│   └── templates
├── cmd                   ## 可独立执行程序
│   ├── ...
├── configs               ## 配置文件
├── deploy                ## 部署相关配置
│   ├── loki            
│   └── prometheus
├── docs
├── internal              ## 业务目录
│   ├── api               ## api 接口
│   ├── code              ## 错误码定义
│   ├── graph             ## graph 接口
│   ├── pkg               ## 内部使用的 package
│   ├── proposal          ## 提案
│   ├── render            ## 渲染 HTML
│   ├── repository        ## 资源
│   ├── router            ## 路由
│   ├── services          ## 服务
│   └── websocket         ## websocket 接口
├── logs                  ## 日志目录
├── pkg                   ## 可供外部使用的 package
│   ├── ...
└── scripts               ## 脚本程序

其他

查看 Jaeger 链路追踪 Demo 代码,请查看 v1.0 版 ,链接地址:http://127.0.0.1:9999/jaeger_test

调用的其他服务端 Demo 代码为 https://github.com/nxsre/go-jaeger-demo

联系作者

联系作者

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL