Gin框架之路由分组和路由嵌套

路由组也可以嵌套,但是需要注意的是当进行嵌套时下一层的需要调用Group方法(设置路由前缀)是需要用上一层的进行调用:

 shopGroup := userGroup.Group("/shop")

代码:

 1 import (
 2     "github.com/gin-gonic/gin"
 3     "net/http"
 4 )
 5
 6 func main() {
 7     r := gin.Default()    //设置路由前缀 调用Group方法
 8     userGroup := r.Group("/user")
 9     {
10         userGroup.GET("/index", func(c *gin.Context) {
11             c.JSON(http.StatusOK, gin.H{
12                 "message": "user/index",
13             })
14         })
15         userGroup.GET("/login", func(c *gin.Context) {
16             c.JSON(http.StatusOK, gin.H{
17                 "message": "user/login",
18             })
19         })
20         shopGroup := userGroup.Group("/shop")
21         {
22             shopGroup.GET("/index", func(c *gin.Context) {
23                 c.JSON(http.StatusOK, gin.H{
24                     "message": "/user/shop/index",
25                 })
26             })
27         }
28     }
29     r.Run()
30 }

运行结果:

路由分组:

 

路由组的嵌套运行结果:

原文地址:https://www.cnblogs.com/yh2924/p/12383892.html

时间: 2024-10-04 23:44:51

Gin框架之路由分组和路由嵌套的相关文章

django之路由分组,路由分发,FBV,CBV,ORM框架

django之路由分组,路由分发,FBV,CBV,ORM框架 今日的内容: a. 路由系统 1. 创建app 2. 路由的分组 3. 路由的分发 - 正则表达式匹配 b. django的orm(模型model) 1. 创建模型的步骤 2. orm基本的增删改查 3. 正向查询和反向查询 注意事项: 1. 前台传给后台一个列表时,后端如何接受: request.POST.getlist(字段名) 2. 前台传给后台一个列表时,需要在ajax请求中增加一个参数: traditional: true

Laravel5.1 路由 -路由分组

路由分组有啥好处? 有时候啊 一大堆路由它们都有共同的地方,比如都使用一个中间件(过两天写)或是前缀都一样,避免代码重复 我们可以将他们分到一组中. 1 路由分组可以共享哪些属性? 中间件 middleware. 控制器的命名空间 namespace. 子域名 domain 路由前缀 1.1 中间件 关于中间件大K还没有写笔记介绍,这里先简单说下 中间件就是接收到请求后验证一些东西或相应后验证一些东西,比如Laravel自带的Auth中间件 就是验证用户有没有登录进来,如果用户没用登录,那么就会

徒手撸出一个类Flask微框架(三)根据业务进行路由分组

所谓分组就是按照前缀分布映射 如: /product/(\w+)/(?P<id>\d+        # 匹配/product/123123  的前缀 比如什么类别,类别下的什么产品 等, 用request path进行正则匹配,所以需要用到正则分组 分析我们当前代码,只有__call__方法才是真正在做处理,也就是说得在这个方法获取分组 通过动态属性 通过动态属性,将匹配到的命名分组域当前request对象,因为一个请求对应不同的request实例 这里是一个实例只能对应一个request

第二百六十三也,Tornado框架-基于正则的动态路由映射分页

Tornado框架-基于正则的动态路由映射分页 分页基本显示数据 第一步.设置正则路由映射配置,(r"/index/(?P<page>\d*)", index.indexHandler),正则匹配访问路径,访问录index/后面可以是可以是0个或多个数字第二步.配置逻辑处理方法,get()方法里显示对应的页面,并传值一个SHUJU全局变量列表到html模板,这个全局变量列表里是字典显示的数据第三步.在html模板里用模板语言,循环这个列表里的字典,显示到表格里第四步.设置用

Django【三】安装/分组命名/路由分发

一.安装Django 命令行窗口: pycharm安装: 二.创建Django项目 命令行窗口创建项目: 访问地址: 表示访问成功 注意如果我们在命令行窗口创建的应用需要我们手动的在django的settings配置文件中注册你添加的应用: INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'djan

学习ASP.NET MVC5框架揭秘笔记-ASP.NET路由(十一)

3.对现有物理文件的路由 在成功注册路由的情况下,如果我们按照传统的方式访问一个现存的物理文件,在请求地址满足某个Route的路由规则,ASP.NET是否还能正常实施路由呢?我们不妨通过实例来测试一下.为了让针对某个物理文件的访问地址也满足注册路由对象的路由模板采用的URL模式,我们需要按照如下的方式在进行路由注册时将表示约束的参数设置为Null. public class Global : System.Web.HttpApplication { protected void Applicat

学习ASP.NET MVC5框架揭秘笔记-ASP.NET路由(七)

5.RouteTable 对于一个Web应用来说,访问所有页面采用的URL不可能具有相同的模式,与之匹配的Route自然也不可能是唯一的,一个Web应用通过RouteTable类型的静态只读属性Routes维护一个全局的路由表,如下面的代码片段所示,该属性返回一个RouteCollection对象. public class RouteTable { public RouteTable(); public static RouteCollection Routes { get; } } 顾名思义

学习ASP.NET MVC5框架揭秘笔记-ASP.NET路由(十)

1.变量默认值 由于我们为定义在URL模板中表示区号和天数的变量定义了默认值(areacode:010:days:2)如果希望返回返回北京未来两天的天气,可以直接访问应用根地址,也可以只指定具体区号,或者同时指定区号和天数. 默认情况下RouteData的Route属性返回的正是一个Route类型的对象,RouteHandler属性返回的则是一个PageRouteHandler的对象.针对请求URL实施路由解析得到的路由变量被保存在生成RouteData对象的Values属性中,而在路由注册过程

学习ASP.NET MVC5框架揭秘笔记-ASP.NET路由(九)

2.1.4路由注册 总的来说,我们可以通过RouteTable的静态属性Routes得到一个针对整个应用的全局路由表.通过上面的介绍我们知道这是一个RouteCollection对象,可以通过调用它的MapPageRoute方法注册某个物理文件的路径与某个路由模板的匹配关系.路由注册的核心在于根据提供的路由规则(路由模板.约束.默认值等)创建一个Route对象,并将其添加到这个全局路由表中.接下来我们通过实例演示的方式来说明路由注册的一些细节问题. 前面给出了一个获取天气预报信息的路由模板,现在