Gin教程(9)—路由组
示例代码
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)
}
说明
- 路由组这部分内容比较简单,没有过多可说的。
- 路由组可以嵌套
- 子路由path可以有子路径
- 支持路由参数
- 路由组的使用可以依据业务模块划分。
- API接口划分多版本,是一个路由组比较好的使用场景。
- 可以给路由组设置中间件,同时生效于所有子路由。
完整代码: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" 转载请保留原文链接及作者。
QQ交流群:273078549