module
Version:
v0.0.0-...-d849e82
Opens a new window with list of versions in this module.
Published: Dec 13, 2023
License: MIT
Opens a new window with license information.
README
¶
go-project-boot
微盟云开放平台的Go项目工程启动脚手架,提供一套Go工程的标准规范,开发者更多关注业务本身,减少开发成本,使其可以快速接入微盟云的开放生态。
介绍
功能列表
- 脚手架框架
- 能力实现
- 组件列表
- MySQL 封装
- Redis 封装
- Log 组件封装
- OAuth 封装
- Encryption 封装
- HttpClient 封装
- Apollo 封装
项目结构
.
├── LICENSE.md
├── Makefile
├── README.md
├── go.mod
├── go.sum
├── pkg
│ ├── auth # OAuth 授权组件
│ ├── boot # 生命周期管理框架目录
│ ├── codec # 编解码组件,例如 JSON
│ ├── config # 配置组件,包括本地配置与Apollo配置
│ ├── db # 数据库组件,包括 Mysql、Redis
│ ├── encrypt # 加解密组件
│ ├── http # Http 组件,包括 Server HealthCheck 与 Client
│ ├── wcontext # 服务容器,包括运行时数据库等
│ └── wlog # 日志组件
└── test
快速开始
-
新建空白项目,并添加依赖
# 创建项目并初始化
mkdir go-demo && cd go-demo
touch main.go
go mod init go-demo
# 增加配置文件
echo server.address = :8080 > application.properties
-
添加启动入口,并实现一个简单的 Controller
package main
import (
"context"
"github.com/cloudwego/hertz/pkg/app"
"github.com/cloudwego/hertz/pkg/app/server"
"github.com/weimob-tech/go-project-base/pkg/http"
"github.com/weimob-tech/go-project-boot/pkg/boot"
)
func main() {
starter := boot.Starter(
boot.WithHttpServer(),
boot.ConfigureHttpServer(route),
)
starter.Start()
}
func route(s http.Server) {
s.GetServer().(*server.Hertz).GET("", func(c context.Context, ctx *app.RequestContext) {
ctx.String(200, "Hello, world!")
})
}
-
本地调试启
# 安装依赖
GO111MODULE=on GOPROXY=https://goproxy.cn,direct go mod tidy
# 启动服务
go run ./main.go
# 请求结果
curl -i http://127.0.0.1
-
生产环境运行,可以在微盟云开发平台进行构建镜像,并发布到容器集群
使用文档
贡献方法
联系我们
Directories
¶
pkg
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Click to show internal directories.
Click to hide internal directories.