Gin教程(9)—路由组

  1. 示例代码

示例代码

package main

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

var (
    webEng *gin.Engine
)

func main() {
    webEng = gin.Default()

    //account 路由组
    account := webEng.Group("account")
    {
        //path为相对路径
        account.POST("/login", Login)
        //path可以不以"/"开始
        account.POST("logout", Logout)
        //path可以包含子路径
        account.GET("profile/info", AccountInfo)
    }

    //article路由组
    article := webEng.Group("/article")
    {
        //嵌套路由组
        //按照版本划分路由组
        v1 := article.Group("v1")
        //path同样支持路由参数
        v1.GET("/:id", GetArticleById)

        v2 := article.Group("v2")
        v2.GET("/:tag",GetArticleByTag)
    }
    webEng.Run()
}

func Login(c *gin.Context) {
    c.String(http.StatusOK, "login")
}

func Logout(c *gin.Context) {
    c.String(http.StatusOK, "logout")
}

func AccountInfo(c *gin.Context) {
    c.String(http.StatusOK, "account info")
}

func GetArticleById(c *gin.Context){
    id := c.Param("id")
    c.String(http.StatusOK,"content of article: %s",id)
}

func GetArticleByTag(c *gin.Context){
    tag := c.Param("tag")
    c.String(http.StatusOK,"content of article: %s",tag)
}

说明

  1. 路由组这部分内容比较简单,没有过多可说的。
    • 路由组可以嵌套
    • 子路由path可以有子路径
    • 支持路由参数
  2. 路由组的使用可以依据业务模块划分。
  3. API接口划分多版本,是一个路由组比较好的使用场景。
  4. 可以给路由组设置中间件,同时生效于所有子路由。

完整代码:https://github.com/IrvinYoung/gin-lessons/tree/master/lesson9


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 irvin.em@live.com

文章标题:Gin教程(9)—路由组

文章字数:335

本文作者:dino

发布时间:2019-11-29, 14:22:19

最后更新:2019-11-29, 15:04:43

原始链接:https://blog.walkbc.com/2019/11/29/gin-lesson-routersGroup/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录