1.gin快速建立web服务
package main
import ("net/http"
"github.com/gin-gonic/gin"
)
func main(){
//1.创建一个路由引擎中添加一些路由和路由处理逻辑
r := gin.Default()
//2.添加路由值路由引擎,以及指定该路由的处理逻辑
//GET("该条路由的路径","处理该路由的逻辑")
r.GET("/ping", func(c *gin.Context){
c.JSON(http.StatusOK,gin.H{
"message": "png",
})
})
//3.启动gin服务
r.Run()
}
2.gin数据交互Json串内容规范
//定义一个函数,用于gin处理相关请求的逻辑并返回json数据
func GetUserInfo(c *gin.Context){
userinfo = make(map[string]string)
userinfo["name"] = "yjc"
userinfo["age"] = "18"
userinfo["address"] = "杭州"
c.JSON(http.StatusOK, userinfo)
}
//路由中使用上述独立函数处理路由逻辑
r.GET("/api/user/info", GetUserInfo)
/*
===================================================================
数据返回格式:也可以自定义根据自己情况而定
{
"status": 200, // 请求后端已经收到 处理也是正常
"msg": "获取成功",
"data": {
"name": "yjc",
"age": "18",
"address": "北京"
}
}
*/
func GetUserInfo(c *gin.Context){
returnData = make(map[string]interface{})
returnData["status"] = 200
returnData["msg"] = "查询成功"
userinfo = make(map[string]string)
userinfo["name"] = "yjc"
userinfo["age"] = "18"
userinfo["address"] = "杭州"
returnData["data"] = userinfo
c.JSON(http.StatusOK, returnData)
}
3.使用结构体返回给前端数据(推荐)
type UserInfo struct{
Username string `json:"username"`
Age int `json:"age"`
Address string `json:"address"`
}
//遵循上述返回数据结构再次定义结构体然后嵌套
type ReturnData struct{
Status int
Message string
Data UserInfo `json:"data"`
}
func returnDataWithStruct(c *gin.Context){
userInfo := UserInfo{
Username: "yjc",
Age: 18,
Address: "杭州",
}
returndata := ReturnData{Status: 200,
Message: "成功",
Data: userInfo}
c.JSON(http.StatusOK, returndata)
}
r.GET("/api/user/info", returnDataWithStruct)