1、导入包
import "github.com/gin-gonic/gin"
在浏览器中响应:
2、Restful Api
3、响应前端
//加载静态页面
ginServer.LoadHTMLGlob("templates/*")
//响应页面返回给前端
ginServer.Get( "index" , func( context *gin.Context)) {
//context.JSON() //json数据
context.HTML( http.StatusOK, "index.html" , gin.H){
"msg" : "这是go后台传递来的数据"
}
}
//接受前端传递的参数
//url?userid = xxx &username = XXX
ginServer.GET( "/user/info" , func( context *gin.Context)){
userid := context.Query( "userid" )
username := context.Query( "username")
context.JSON( http.StatusOK , gin.H){
"userod" : userid;
"username" : username,
// /user/info/1/XXX
ginServer.GET( "/user/info/:userid/:username"), func(context *gin.Context){
userid := context.Param( "userid")
username := context.Param( "username")
context.JSON(http.StatusOK, gin.H){
"userid": userid,
"username": username,
}
}
//服务器端口
ginServer.Run( ":8082")
}
}
4、路由
ginServer.GET("/test", func(context *gin.Context)){
//重定向301
context.Redirect( http.StatusMovedPermanently, "https://www.XXX.com")
})
//404 NoRoute
ginServer.NoRoute ( func(context *gin.Context )){
context.HTML(http.StatusNotFound, "404.html", nil)
})
// 路由组 /user/add
userGroup := ginServer.Group("/user"){
userGroup.GET("/add")
userGroup.GET("/login")
userGroup.GET("/logout")
}
orderGroup := ginServer.Group("/order"){
orderGroup.GET(""/add)
orderGroup.DELETE("/delete")
}
5、中间件
自定义一个拦截器
func myHandler() (gin.HandlerFunc){
return func(context *gin.Context){
// 在后续操作中,只要调用了这个中间件都可以拿到这里的参数
context.Set( "usersession" , "userid-1")
context.Next() //放行
//cotext.Abort() //阻止
}
}
定义中间件-》注册-》调用
标签:username,框架,GET,userid,context,gin,Go,Gin,ginServer From: https://blog.csdn.net/weixin_44828537/article/details/136750552