Gin路由
简单路由示例
- 响应
字符串格式
go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/hello", func(c *gin.Context) {
c.String(http.StatusOK, "Hello World")
})
r.POST("/user/list", func(c *gin.Context) {
c.String(http.StatusOK, "user list")
})
r.PUT("/user/add", func(c *gin.Context) {
c.String(http.StatusOK, "user add")
})
r.DELETE("/user/delete", func(c *gin.Context) {
c.String(http.StatusOK, "user delete")
})
r.Run(":9999") // 指定端口号,默认端口号:8080
}- 响应
JSON格式
go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/user/info", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"code": 200,
"message": "success",
"data": map[string]any{
"userid": 1,
"username": "hello",
},
})
})
r.Run()
}路由组
go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
user := r.Group("/user")
{
user.GET("/info", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"code": 200,
"message": "success",
"data": map[string]any{
"userid": 1,
"username": "hello",
},
})
})
// ...
}
r.Run()
}路由文件抽离封装
创建路由目录 router
shell
mkdir router && cd router
touch router.go配置路由文件 router.go
go
package router
import (
"gin/controllers"
"github.com/gin-gonic/gin"
)
func Router() *gin.Engine {
r := gin.Default()
param := r.Group("/param")
{
param.GET("/GetParam/:id", controllers.ParamController{}.GetParam)
param.GET("/GetParams/:cid/:name", controllers.ParamController{}.GetParams)
param.POST("/PostParam", controllers.ParamController{}.PostParam)
param.POST("/PostJsonParam", controllers.ParamController{}.PostJsonParam)
param.POST("/PostJsonByStructParam", controllers.ParamController{}.PostJsonByStructParam)
}
return r
}