package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/index", func(c *gin.Context) {
c.Redirect(http.StatusMovedPermanently, "")
})
r.GET("/a", func(c *gin.Context) {
//跳转到b对应的路由处理函数
c.Request.URL.Path = "/b" //修改请求的URL的path
r.HandleContext(c)
})
r.GET("/b", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "b",
})
})
r.Run(":9090")
}
Gin中使用r.Any()可以匹配任意请求,比如常用的GET--获取 POST--提交 PUT--更新 DELTE--删除
MethodGet = "GET" MethodHead = "HEAD" MethodPost = "POST" MethodPut = "PUT" MethodPatch = "PATCH" // RFC 5789 MethodDelete = "DELETE" MethodConnect = "CONNECT" MethodOptions = "OPTIONS" MethodTrace = "TRACE"
为没有配置处理函数的路由添加处理程序,默认情况下它返回404代码,下面的代码为没有匹配到路由的请求返回页面
r.NoRoute(func(c *gin.Context) {
c.JSON(http.StatusNotFound, gin.H{
"msg": "无法找到",
})
})
//路由组的组 //把共用的前缀提取出来,创建一个路由组 v_grop := r.Group("/feed")
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/index", func(c *gin.Context) {
})
r.NoRoute(func(c *gin.Context) {
c.JSON(http.StatusNotFound, gin.H{
"msg": "无法找到",
})
})
//路由组的组
//把共用的前缀提取出来,创建一个路由组
v_grop := r.Group("/feed")
{
//视频的首页和详情页
v_grop.GET("/video", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"msg": "视频",
})
})
//商城的首页和详情页
//...
}
r.Run(":9090")
}
路由组也是支持嵌套的