1.使用go mod管理项目,并生成go.mod文件
go mod init ginDemo1
2.下载安装Gin
go get -u github.com/gin-gonic/gin
如果不成功:先配置代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
接下来是代码部分:
package main
import (
"log"
"net/http"
"github.com/gin-gonic/gin"
)
type Person struct {
Name string `json:"name"`
Address string `json:"address"`
}
// go语言支持UTF-8编码
func main() {
// 申请一个服务
ginServer := gin.Default()
//加载静态页面
ginServer.LoadHTMLGlob("templates/*")
// 普通的get方法
ginServer.GET("/hello", func(ctx *gin.Context) {
ctx.JSON(200, gin.H{"message": "hello,world!"})
})
//前后端未分离时
ginServer.GET("/index", func(ctx *gin.Context) {
ctx.HTML(http.StatusOK, "index.html", gin.H{
"msg": "这是go后台",
})
})
//接收前端传过来的参数
//usl?userid=xxx&username=xiaolin
ginServer.GET("/user/info", func(ctx *gin.Context) {
userid := ctx.Query("userid")
username := ctx.Query("username")
ctx.JSON(http.StatusOK, gin.H{
"userid": userid,
"username": username,
})
})
//接收前端传过来的参数
// /user/info/1/2
ginServer.GET("/user/info/:userid/:username", func(ctx *gin.Context) {
userid := ctx.Param("userid")
username := ctx.Param("username")
ctx.JSON(http.StatusOK, gin.H{
"userid": userid,
"username": username,
})
})
//前端给后端传递Json
ginServer.POST("/user/aa", func(ctx *gin.Context) {
var u Person
if ctx.ShouldBind(&u) == nil {
log.Println(u.Name)
log.Println(u.Address)
}
ctx.String(200, "Success")
})
ginServer.Run(":8082")
}