Skip to content
This repository has been archived by the owner on Feb 16, 2023. It is now read-only.
/ golang-starter-kit Public archive

A web api application boilerplate in Go taking best practices and utilizing best available packages and tools

License

Notifications You must be signed in to change notification settings

qeelyn/golang-starter-kit

Repository files navigation

基于Go的应用开发入门套件

本工具包旨于让您快速构建起项目结构,以便通过Go来开发WebApi或RPC服务,遵循SOLID的最佳实践来编写GO代码.

现阶段本项目例子还相对简单,但框架及组件的使用都是在实际项目使用的,未来再提供近于实战的例子.

本工具包提供下列功能:

  • 应用与组件的可配置性,并支持配置中心方式
  • 基于Gin的Web服务支持
  • GraqhQl服务支持
  • 基于Gorm的数据库操作及事务控制
  • JWT-based 验证
  • 异常处理及可控的错误响应
  • 应用日志及访问日志支持
  • 围绕protobuf为模型中心,生成通用性代码
  • 采用Service层,并可扩展为RPC服务或微服务
  • 测试环境可配置

本工具包使用了常见的GoPKG,你可以很容易的替换为自己喜欢的包.因为这些流行的PKG进行了良好的抽象 .

  • 路由框架: gin
  • 数据库及ORM: gorm
  • 数据验证: 目前通过Gin在路由层处理,还有很式工作 [want help]
  • 配置文件: viper
  • 日志: Uber Zap
  • graphql: gopher-graphql
  • 依赖管理: DEP 将被vgo取代
  • 基础套件:qeelyn-common
    • 缓存 cache 内置支持local,redis,memcached
    • protobuf工具包
    • grpc 一些的微服务工具包
  • 中间件与组件: qeelyn-contrib
  • protoc生成工具扩展: protoc-gen-goql

微服务部分

本套件可以做什么

本套件面向是的企业级应用开发,做为通用的API编程框架.包括常见的RESTapi,微服务架构支持.

本套件的目标不是为了实现像beego这样的全栈框架,通常认为每个项目特性不同,除了提供一些基础包,应该由项目自行装配.

开发环境

  • go环境安装
  • IDE vscode or goland
  • 以前go的开发离开不了翻墙,现在可以不翻了,具体可看工具篇

快速入门

新建项目

  git clone https://github.com/qeelyn/golang-starter-kit.git $GOPATH/src/xxx.com/your-vendor/project-name

运行

  make run    

默认采用微服务结构,通过浏览器访问: http://localhost:18000/graphiql,graphiql正常显示时在graphiql中输入:

query test {
  hello(name:"qsli") {
    id
  }
}

执行,没有看到异常时表示项目正常运行

资源

开发手册: 戳我

QQ: 21997272

About

A web api application boilerplate in Go taking best practices and utilizing best available packages and tools

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published