Skip to content

生产级可用golang api服务端(基于gin)

License

Notifications You must be signed in to change notification settings

KC20191026/apiserver-gin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

apiserver-gin

基于gin的api构键脚手架,项目从实际生产出发,也参考了golang项目标准布局,还有学习golang过程中见过的比较好的项目结构。 整个项目拉下来,不用做太多改造,就可以实际使用在生产中,特别对于新手学习搭建项目,熟悉项目规划,了解生产项目结构和细节设计感觉会有很大帮助。 本项目依然是按照单体项目布局来做的,后面会完善多模块项目推荐的布局(比如一个项目既有app端server,又有管理后台server),多项目多模块也是在单体项目上演变的,稍微做下改动而已。

下一步计划

  • Dockerfile, 消息队列,微服务相关

目前整合组件及实现功能

  • 加入viper使用yml配置文件来配置项目信息,启动时可根据环境指定不同的配置文件
eg.
go run main.go -config test.yml
  • 集成gorm 并自定义JsonTime 解决Json序列化和反序列化只支持UTC时间的问题(可以自定义时间格式)
    提供了部分demo,可以按照demo在项目中直接使用。
  • 整合redis,开箱即用,直接通过yml文件对redis进行配置
  • 整合zap,lumerjack 完善日志输出,日志分割,部分参数可配置。
  • 集成jwt,提供demo代码,自定义授权失败成功等的响应格式,跟全局api响应格式统一。
  • 实现部分工具类的封装,md5, bcrypt和uuid生成
  • 应用统一封装响应格式,基本参照笔者参与的大型项目经验和规范
  • 项目全局错误码封装,使go在写业务代码时也能规范统一
  • 全局应用常量
  • 应用统一入口日志记录中间件实现,类似java中拦截器或者过滤器思想,可以很方便的在入口处记录访问日志。
  • 添加makefile,可以使用make 命令进行编译,打包
  • 完善了项目版本管理,使用make命令编译后的项目可以方便跟踪线上发布版本
  • 其他一些坑,代码中有注释

项目使用文档 查看

About

生产级可用golang api服务端(基于gin)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 96.2%
  • Shell 2.5%
  • Makefile 1.3%