gin 文档
gin-gonic.com/zh-cn/docs/
初始化gin项目
- 设置 go mod
GOPROXY=https://goproxy.cn,direct
- go mod init projectName
- 配置 go build
- 安装 gin
go get -u ginhub.com/gin-gonic/gin
#-u 如果存在则更新 - gin目录框架
├─api --前后端分离
├─config --管理网站配置参数
├─middleware --中间件
├─model -- 管理数据库
├─routes -- 路由
├─utils -- 公共工具,全局使用
├─web -- 前端页面
├─main.go
- 分析业务功能,创建数据库
配置文件的使用
- 我们使用 .ini 来作为网站的配置文件
- 文档地址:ini.unknwon.io/docs/intro
- 项目中安装包:
go get gopkg.in/ini.v1
- 项目根目录新建 config/config.ini
ini 的使用分为:分区、键和值
config/config.ini
[server]
AppMode = debug
HttpPort = :3000
- utils 中读取配置文件数据
- 声明配置文件中的全局变量
- 全局变量读取赋值
- 安装包:
go get -u gopkg.in/ini.v1
详情参考 文档地址:ini.unknwon.io/docs/intro
utils/setting
package utils
import (
"fmt"
"gopkg.in/ini.v1"
)
var (
AppMode string
HttpPort string
Db string
DbHost string
DbPort string
DbUser string
DbPassWord string
DbName string
)
func init() {
cfg, err := ini.Load("../config/config.ini")
if err != nil {
fmt.Printf("Fail to read file: %v", err)
}
AppMode = cfg.Section("server").Key("AppMode").MustString("debug")
HttpPort = cfg.Section("server").Key("HttpPort").MustString("debug")
Db = cfg.Section("database").Key("Db").MustString("mysql")
DbHost = cfg.Section("database").Key("DbHost").MustString("localhost")
DbPort = cfg.Section("database").Key("Db Port").MustString("3306")
DbUser = cfg.Section("database").Key("DbUser").MustString("root")
DbPassWord = cfg.Section("database").Key("DbPassWord").MustString("wucs123")
DbName = cfg.Section("database").Key("DbName").MustString("ginVue3blog")
}
- 路由 routes/router
package routes
import (
setting "ginVue3blog/utils"
"github.com/gin-gonic/gin"
"net/http"
)
func InitRouter() {
gin.SetMode(setting.AppMode)
r := gin.Default()
router := r.Group("api/v1")
{
router.GET("hello", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"msg": "ok",
})
})
}
//此函数可以返回一个引擎 *gin.Engine ,然后main函数调用运行
//也可以不返回,直接run运行
- 运行测试 main.go
package main
import "ginVue3blog/routes"
func main() {
//引入路由