这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天
Gin 是一个用 Go (Golang) 编写的 HTTP web 框架。
如果还没有安装Go语言开发环境,参考一下我的这篇文章:
第 N 次Hello World ! Ready ?Go !
🍰 码云地址
完整demo代码放在码云上了,需自取
🎯 新建项目初始化,以及安装
新建文件夹后,初始化 go.mod 文件
//初始化
go mod init gin
复制代码
下载安装Gin
//下载
go get -u github.com/gin-gonic/gin
复制代码
tips:踩坑指南
go get 命令下载gin包时出现报错
go在1.13版本后,默认开启了:
GOSUMDB=sum.golang.org
而这个网址sum.golang.org 在国内是无法访问,故需要关闭
解决方案:
go env -w GOSUMDB=off
更换国内源
go env -w GO111MODULE=on
go env -w GOPROXY=mirrors.aliyun.com/goproxy/,di…
首先,使用Gin输出一个 Ready?Go!
新建文件
在文件夹中新建 main.go 文件
导入Gin
import "github.com/gin-gonic/gin"
复制代码
如果使用诸如 http.StatusOK 之类的常量,则需要引入 net/http 包
import "net/http"
复制代码
官网的demo
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}
复制代码
自己的代码
简单分析一下,每一步做了什么
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
// 创建服务,Default返回一个默认的路由引擎
ginServer := gin.Default()
// GET 方法, 添加路由地址和回调函数
// Gin进行了封装,把request和response都封装到了gin.Context的上下文环境中。
ginServer.GET("/", func(context *gin.Context) {
context.String(http.StatusOK, "Ready?Go!")
})
// 服务器端口 如果不传端口号,默认8080
ginServer.Run(":8082")
}
复制代码
运行项目,通过命令启动,或者直接在IDE开发工具中启动。
go run main.go
复制代码
浏览器访问地址:
成功输出:Ready?Go!
看一下上面的代码,回调函数中的 gin.Context
除了返回 Json 和 String 当然还可以返回 HTML页面。
🚴 加载静态资源和页面
响应一个前端页面
// 响应一个前端页面
ginServer.GET("/index", func(context *gin.Context) {
context.HTML(http.StatusOK, "index.html", gin.H{"title": "gin web页面"})
})
复制代码
使用 ico 文件
安装命令
go get "github.com/thinkerou/favicon"
复制代码
// 使用 favicon.ico 文件
ginServer.Use(favicon.New("./favicon.ico"))
复制代码
加载静态页面
// 加载静态页面
ginServer.LoadHTMLGlob("templates/*")
复制代码
加载资源文件
// 加载资源文件
ginServer.Static("/static", "./static")
作者:OrzR3
链接:juejin.cn/post/716687…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。