gin框架,go编写的一个轻量级web框架
创建路由引擎、
r = gin.Default()
配置路由
r.GET("/",func (c *gin.Context){ c.JSON(200,gin.H{ "message": "Hello World", }) })
监听http端口
r.run() r.run(":8000")//改变端口
默认0.0.0.0:8080端口
编译并运行
go run .\main.go
下载一个fresh可以热启动
gin返回值
c.String(200,"abc");
c.JSON(200,map[string]interface{
"success": true,
"msg": "你好gin",
}
)
//其中interface可以表示任意类型。
也可以使用gin框架提供的gin.H来替换map
也可以通过一个对象来返回其json。
a := &Article{
Title: "abc",
Content: "ab",
}
c.JSON(200,a)
另外还可以在请求时加入?callback=xxx后端使用JSONP将会返回一个回调函数返回此结果。
返回HTML页面, 首先在r中设置templates路径,r.LoadHTMLGlob("templates/*");
之后返回
c.HTML(http.StatusOK,"news.html",gin.H{
"title":"abc"
})
html中通过{{.title}}来找寻元素
为了区分不同文件夹下的同名文件。
请求参数
//GET
uname := c.Query("username")
//POST
uname := c.PostForm("username")
也可以使用类来直接绑定
user = &UserInfo{}
c.ShouldBind(&user)
通过这样的方式可以将form表单直接绑定到一个实体类中。
动态路由
/user/20
路由分组
这样就可以合作开发并且有错能快速定位和修改。
Gin中间件
配置中间件可以配置回调函数,时间统计,登录认证,耗时权重
配置好静态资源目录,模板文件,模板函数。
//配置中间件
r.GET("/",initMiddleWare,func(c *gin.Context){
c.String(200,"abc");
})
这种写法表示在执行回调函数之前,执行中间件函数。
如果之前之后都需要执行的话。
c.Next()可以触发下一个中间件,回调函数。完成后再继续执行下面的代码
同样的还有c.Abort()
如果有多个中间件,直接用逗号分开。
还可以配置全局中间件 r.Use(),同样中间用逗号分开。
分组路由中间件