路由及路由组
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
//访问/index的GET请求会走这一条处理逻辑
//获取信息
r.GET("/index", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"method": "GET",
})
})
//创建某个信息
r.POST("/index", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"method": "POST",
})
})
//更新某个信息
r.PUT("/index", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"method": "PUT",
})
})
//删除某个信息
r.DELETE("/index", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"method": "DELETE",
})
})
//处理所有的请求方法
r.Any("/user", func(c *gin.Context) {
switch c.Request.Method{
case "GET" :
c.JSON(http.StatusOK, gin.H{"method": "GET"})
case http.MethodPost:
c.JSON(http.StatusOK, gin.H{"method":"POST"})
//......
}
c.JSON(http.StatusOK, gin.H{
"method": "Any",
})
})
//没有路由的页面
//为没有配置处理函数的路由添加处理程序,默认情况下它返回404代码
r.NoRoute(func(c *gin.Context) {
c.JSON(http.StatusNotFound, gin.H{
"msg" : "zisefeizhu",
})
})
//路由组 多用于区分不同的业务线或APP版本
//将拥有共同URL前缀的路由划分为一个路由组。习惯性一对{}包裹同组的路由,这只是为了看着清晰,你用不用{}包裹功能上没什么区别
//视频的首页和详细页
//r.GET("/video/index", func(c *gin.Context) {
// c.JSON(http.StatusOK, gin.H{"msg":"/video/index"})
//})
//商城的首页和详细页
r.GET("/shop/index", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"msg":"/shop/index"})
})
//路由组
//把公用的前缀提取出来,创建一个路由组
videoGroup := r.Group("/video")
{
videoGroup.GET("/index", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"msg":"/video/index"})
})
videoGroup.GET("/xx", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"msg":"/video/xx"})
})
videoGroup.GET("/oo", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"msg":"/video/oo"})
})
}
r.Run(":9090")
}
没有路由
路由组