💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
> Gin 是一个用 轻量级高性能的web 框架,特别适合写API类程序,要求Go 1.6及以上版本 [TOC] ## 下载安装包 ~~~ go get -u github.com/gin-gonic/gin ~~~ ## 简单的http server例子 > 运行该例子前,需进入该项目后,初始化mod文件`go mod init`,再`go run main.go` ~~~ package main import "github.com/gin-gonic/gin" func main() { // 初始化一个http服务对象 r := gin.Default() // 设置一个get请求的路由,url为/ping, 处理函数(或者叫控制器函数)是一个闭包函数。 r.GET("/ping", func(c *gin.Context) { // 通过请求上下文对象Context, 直接往客户端返回一个json c.JSON(200, gin.H{ "message": "pong", }) }) r.Run() // 监听并在 0.0.0.0:8080 上启动服务 } ~~~ ## 规划项目结构 > Gin没有对项目结构做限制,我们可以根据自己项目需要自行设计 ~~~ ├── conf #项目配置文件目录 │ └── config.toml #大家可以选择自己熟悉的配置文件管理工具包例如:toml、xml等等 ├── controllers #控制器目录,按模块存放控制器(或者叫控制器函数),必要的时候可以继续划分子目录。 │ ├── food.go │ └── user.go ├── main.go #项目入口,这里负责Gin框架的初始化,注册路由信息,关联控制器函数等。 ├── models #模型目录,负责项目的数据存储部分,例如各个模块的Mysql表的读写模型。 │ ├── food.go │ └── user.go ├── static #静态资源目录,包括Js,css,jpg等等,可以通过Gin框架配置,直接让用户访问。 │ ├── css │ ├── images │ └── js ├── logs #日志文件目录,主要保存项目运行过程中产生的日志。 └── views #视图模板目录,存放各个模块的视图模板,当然有些项目只有api,是不需要视图部分,可以忽略这个目录 └── index.html ~~~ ## Gin框架运行模式 > 为方便调试,Gin 框架在运行的时候默认是debug模式,在控制台默认会打印出很多调试日志,上线的时候我们需要关闭debug模式,改为release模式。 ### 通过环境变量设置 ~~~ export GIN_MODE=release ~~~ ### 通过代码设置 > 在main函数,初始化gin框架的时候执行下面代码 ~~~ // 设置 release模式 gin.SetMode(gin.ReleaseMode) // 或者 设置debug模式 gin.SetMode(gin.DebugMode) ~~~