1.安装
go get -u github.com/gin-gonic/gin
2.开始
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 上启动服务
}
3.get接参
r.GET("/ping", func(c *gin.Context) {
name := c.Query("name")
age := c.Query("age")
fmt.Println(name, age)
})
4.post接参
方法1.
type Demoinfo struct {
Name string `json:"name"`
Age int `json:"age"`
}
r.POST("/pang1", func(c *gin.Context) {
var demoinfo Demoinfo
c.BindJSON(&demoinfo)
fmt.Println(demoinfo)
})
方法2.
r.POST("/pang2", func(c *gin.Context) {
var jsonData map[string]interface{}
c.BindJSON(&jsonData)
fmt.Println(jsonData)
})
5.路由封装
package routers
import (
"gindemo/controllers"
"github.com/gin-gonic/gin"
)
func SetupRouter() *gin.Engine {
r := gin.Default()
r.GET("/getdemo", controllers.Getdemo)
r.POST("/postdemo", controllers.Postdemo)
return r
}
package main
import (
"gindemo/routers"
)
func main() {
r := routers.SetupRouter()
r.Run(":1234")
}
package controllers
import (
"fmt"
"github.com/gin-gonic/gin"
)
func Getdemo(c *gin.Context) {
fmt.Println(123)
}
func Postdemo(c *gin.Context) {
c.JSON(200, 123)
}
6.生产模式
gin.SetMode(gin.ReleaseMode)
示例
package main
import "github.com/gin-gonic/gin"
func main() {
gin.SetMode(gin.ReleaseMode) // 生产环境模式
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}
3199

被折叠的 条评论
为什么被折叠?



