前言
我是一名 phper,由于各方面因素,决定转战 Go,PHP 基本都是用来开发 Web 项目的,所以这次就使用 Go 中最流行的 Web 框架 Gin 来进行二次封装,由于它自由度很高,没办法像 PHP 框架 Laravel 开箱即用,所以就诞生了这个系列的文章,带你一步步将基础服务封装到 Gin 中,方便以后更愉快的 CURD
适用人群
- 懂得安装 Go 环境及其基本语法
- 会使用 Go Modules 管理项目
- 略微有一点点点的开发经验
目录结构
文件/目录名称 | 说明 |
---|
app/common | 公共模块(请求、响应结构体等) |
app/controllers | 业务调度器 |
app/middleware | 中间件 |
app/models | 数据库结构体 |
app/services | 业务层 |
bootstrap | 项目启动初始化 |
config | 配置结构体 |
global | 全局变量 |
routes | 路由定义 |
static | 静态资源(允许外部访问) |
storage | 系统日志、文件等静态资源) |
utils | 工具函数 |
config.yaml | 配置文件 |
main.go | 项目启动文件 |
初始化项目
- 先在
~/go/src
目录下创建一个目录 jassue-gin
用来存放项目代码
1
| mkdir ~/go/src/jassue-gin
|
- 在项目根目录下,初始化
go.mod
文件
- 安装 Gin
1
| go get -u github.com/gin-gonic/gin
|
- 在项目根目录下编写
main.go
文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
// 测试路由
r.GET("/ping", func(c *gin.Context) {
c.String(http.StatusOK, "pong")
})
// 启动服务器
r.Run(":8080")
}
|
启动应用 & 测试
执行 go run main.go
启动应用
可以看到 HTTP 服务器启动成功,打开 http://127.0.0.1:8080/ping 测试路由