在一个项目中,我们会有很多路由,那么我们该如何更好的管理自己的路由,在多人协同的情况下可以更好的规范路由呢,我来说一下自己的做法

1.承接gin框架初识(先跑一个简单demo) ①,先创建一个controller文件夹,再创建子文件夹及go文件,如下:

2.每个go文件的代码如下:

project->index.go:

package main

import (
c "project/controller" "github.com/gin-gonic/gin"
) func main() {
r := gin.Default()
rr := c.GinRouter(r) // 监听并在 0.0.0.0:8080 上启动服务
rr.Run(":8080")
}

project->controller->index.go:

package controller

import (
"fmt"
"project/controller/forth"
"project/controller/second"
"project/controller/third" "github.com/gin-gonic/gin"
) func GinRouter(r *gin.Engine) *gin.Engine {
rr := r.Group("/")
rr.GET("/first", func(c *gin.Context) {
fmt.Println("first .........")
})
rr = r.Group("/a")
second.Routers(rr)
third.Routers(rr)
forth.Routers(rr)
return r
}

project->controller->second->index.go:

package second

import (
"fmt" "github.com/gin-gonic/gin"
) func Routers(r *gin.RouterGroup) {
rr := r.Group("")
rr.POST("/second", Function)
return
}
func Function(c *gin.Context) {
fmt.Println("second .........")
return
}

project->controller->third->index.go:

package third

import (
"fmt" "github.com/gin-gonic/gin"
) func Routers(r *gin.RouterGroup) {
rr := r.Group("")
rr.POST("/third", Function)
return
}
func Function(c *gin.Context) {
fmt.Println("third .........")
return
}

project->controller->forth->index.go:

package forth

import (
"fmt" "github.com/gin-gonic/gin"
) func Routers(r *gin.RouterGroup) {
rr := r.Group("")
rr.POST("/forth", Function1)
rr.POST("/five", Function2)
return
}
func Function1(c *gin.Context) {
fmt.Println("forth .........")
return
}
func Function2(c *gin.Context) {
fmt.Println("five .........")
return
}

3.执行一下代码:

这样的写法能够保证,在多人协作的情况下,代码的合并不会出现很大的问题,而且路由管理也相方便。

gin框架封装自己的路由 ②的更多相关文章

  1. Gin框架系列02:路由与参数

    回顾 上一节我们用Gin框架快速搭建了一个GET请求的接口,今天来学习路由和参数的获取. 请求动词 熟悉RESTful的同学应该知道,RESTful是网络应用程序的一种设计风格和开发方式,每一个URI ...

  2. gin框架使用【5.路由分组】

    package mainimport ( "github.com/gin-gonic/gin")func main() { router := gin.Default() v1Ro ...

  3. gin框架使用【3.路由参数】

    GET url: http://127.0.0.1:8080/users/{id} http://127.0.0.1:8080/users/1   对于id值的获取 package main impo ...

  4. gin框架实现一个简单的项目 ③

    承接:gin框架封装自己的路由 ② 对于一个项目来说,需要将各个功能模块分开,也就是所谓的三层模型,这里介绍一下个人的做法: contorller主要负责路由 model主要负责程序输入输出的数据 s ...

  5. gin框架中的路由

    基本路由 gin框架中采用的路由库是基于httrouter做的 地址为:https://github.com/julienschmidt/httprouter httprouter路由库 点击查看代码 ...

  6. gin框架学习手册

    前言 gin框架是go语言的一个框架,框架的github地址是:https://github.com/gin-gonic/gin 转载本文,请标注原文地址:https://www.cnblogs.co ...

  7. GO语言GIN框架入门

    Gin框架介绍 Gin是一个用Go语言编写的web框架.它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍. 中文文档 Gin框架安装与使用 ...

  8. Gin 框架 - 安装和路由配置

    目录 概述 Gin 安装 路由配置 推荐阅读 概述 看下 Gin 框架的官方介绍: Gin 是一个用 Go (Golang) 编写的 web 框架. 它是一个类似于 martini 但拥有更好性能的 ...

  9. 01 . Go框架之Gin框架从入门到熟悉(路由和上传文件)

    Gin框架简介 Gin是使用Go/Golang语言实现的HTTP Web框架, 接口简洁, 性能极高,截止1.4.0版本,包含测试代码,仅14K, 其中测试代码9K, 也就是说测试源码仅5k左右, 具 ...

随机推荐

  1. Vuex 通俗版教程告诉你Vuex怎么用

    写在文前: 最近一直在用vue开发项目,写来写去就是那么些方法,对于简单的项目一些常用的vue方法足以解决,但是涉及到页面状态,权限判断等一些复杂的传值,vuex是必须的.对于vuex也运用一段时间, ...

  2. ISO/IEC 9899:2011 条款5——5.2.3 信号与中断

    5.2.3 信号与中断 1.函数应该被设计为它们可以被一个信号在任一时刻打断,或是被一个信号处理所调用,或是两者都发生,对于初期不发生改变,但仍然处于活动状态,调用的控制流(在中断之后),函数返回值, ...

  3. 使用python3脚本部署mariadb主从架构

    环境准备 一个脚本自动部署master服务 另一个部署slave服务 关闭主从节点的防火墙 以及事先设置好root远程登陆的权限. master import paramikossh=paramiko ...

  4. Day9作业:socket之FTP工具

    代码传的太累,直接发个github的链接吧! https://github.com/ccorzorz/Socketserver_FTP 上两张图给抛砖引玉下吧: 后台管理: FTP程序,包括客户端和s ...

  5. 容器版单个jenkins实现CI/CD----带solo博客开源项目

    实验架构: 192.168.0.96 gitlab 192.168.0.97 jenkins.docker-1.7 192.168.0.98 harbor.docker-1.7集群 jenkins安装 ...

  6. SQL Server中的加密

    参考文献: 细说SQL Server中的加密 Transparent Data Encryption (TDE) Database Encryption Key (DEK) management SQ ...

  7. iOS-objective-c产生随机数的方法

    objective-c 中三种产生随机数的方法 //arc4random() 比较精确不需要生成随即种子 //通过arc4random() 获取0到x-1之间的整数的代码如下:     int val ...

  8. 搭建Android与多ble蓝牙设备并发通讯小框架

    此框架支持多种不同类型的ble设备,同时连接.收发数据,互不干扰.比如APP同时连两个LED蓝牙灯.两个手环.一个蓝牙加热器,当然连接单个ble设备,或者只连接一种ble设备同样适用本框架. 前言 小 ...

  9. 【C/C++开发】运算符重载二

    C++中预定义的运算符的操作对象只能是基本数据类型.但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作.这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类 ...

  10. 洛谷 题解 UVA1151 【买还是建 Buy or Build】

    [题意] 平面上有\(n(n<=1000)\)个点,你的任务是让所有n个点联通.为此,你可以新建一些边,费用等于两个端点的欧几里得距离平方.另外还有\(q(q<=8)\)个套餐可以购买,如 ...