专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

gin系列- 路由及路由组

路由及路由组

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")
}

没有路由
109_1.png
路由组
109_2.png
109_3.png

文章永久链接:https://tech.souyunku.com/38578

未经允许不得转载:搜云库技术团队 » gin系列- 路由及路由组

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们