”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在 Gin 中组织路由:分组路由定义指南?

如何在 Gin 中组织路由:分组路由定义指南?

发布于2024-11-08
浏览:936

How to Organize Routes in Gin: A Guide to Grouped Route Definition?

如何在 Gin 中组织路由

为了避免路由定义使主文件混乱,您可以将路由分组到单独的文件中。这种方法可以实现更好的代码组织和可维护性。

要创建嵌套路由分组,您可以将路由器变量存储在结构体或全局变量中。然后,各个文件可以将处理程序添加到此共享路由器实例。

示例实现

routes.go

package app

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

type routes struct {
    router *gin.Engine
}

func NewRoutes() routes {
    return routes{
        router: gin.Default(),
    }
}

func (r routes) addPing(rg *gin.RouterGroup) { }
func (r routes) addUsers(rg *gin.RouterGroup) { }

func (r routes) Run(addr ...string) error { return r.router.Run() }

ping.go

package app

import "github.com/gin-gonic/gin"

func (r routes) addPing(rg *gin.RouterGroup) {
    ping := rg.Group("/ping")
    ping.GET("/", pongFunction)
}

users.go

package app

import "github.com/gin-gonic/gin"

func (r routes) addUsers(rg *gin.RouterGroup) {
    users := rg.Group("/users")
    users.GET("/", getUsersFunction)
}
最新教程 更多>
  • 为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    在CSS 问题:不正确的代码: 全球范围将所有余量重置为零,如提供的代码所建议的,可能会导致意外的副作用。解决特定的保证金问题是更建议的。 例如,在提供的示例中,将以下代码添加到CSS中,将解决余量问题: body H1 { 保证金顶:-40px; } 此方法更精确,避免了由全局保证金重置引...
    编程 发布于2025-04-13
  • Go语言中数字转字母的技巧
    Go语言中数字转字母的技巧
    go 返回字符串('a'-1 i) } [为了优化多个转换,可以将相应的字符串存储在数组中,并且用于检索字符串的数组索引: “ F”,“ G”,“ H”,“ I”,“ J”,“ K”,“ L”,“ M”, “ n”,“ o”,“ p”,“ q”,“ r”,“ s”...
    编程 发布于2025-04-13
  • C++ IOStream性能真比printf/scanf慢吗?
    C++ IOStream性能真比printf/scanf慢吗?
    如何优化C buffering 可以通过降低HDD HITS和系统调用来显着提高性能的缓冲大小。这是由: char buffer [n]; std :: ifstream文件(“ file.txt”); file.rdbuf() - > pubsetbuf(buffer,n); std ::...
    编程 发布于2025-04-13
  • 在GO中构造SQL查询时,如何安全地加入文本和值?
    在GO中构造SQL查询时,如何安全地加入文本和值?
    在go中构造文本sql查询时,在go sql queries 中,在使用conting and contement和contement consem per时,尤其是在使用integer per当per当per时,per per per当per. [&​​&&&&&&&&&&&&&&&默元组方法在...
    编程 发布于2025-04-13
  • 如何使用FormData()处理多个文件上传?
    如何使用FormData()处理多个文件上传?
    )处理多个文件输入时,通常需要处理多个文件上传时,通常是必要的。 The fd.append("fileToUpload[]", files[x]); method can be used for this purpose, allowing you to send multi...
    编程 发布于2025-04-13
  • CSS打造酷炫幽灵按钮
    CSS打造酷炫幽灵按钮
    [2 最近,我寻求编码灵感,缺乏艺术才能。我的方法? 复制他人的视觉吸引力创作,重点关注清洁,简洁的代码。 这些糖果幽灵按钮引起了我的注意! 它们似乎非常适合快速项目。 在十五分钟内,我在铬中实现了这一目标: 该技术值得共享。 本文详细介绍了我的过程并探讨了替代方法。 初始设置 一个简单的按...
    编程 发布于2025-04-13
  • eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    称量()和ast.literal_eval()中的Python Security 在使用用户输入时,必须优先确保安全性。强大的Python功能Eval()通常是作为潜在解决方案而出现的,但担心其潜在风险。本文深入研究了eval()和ast.literal_eval()之间的差异,突出显示其安全性含义...
    编程 发布于2025-04-13
  • 如何解决由于Android的内容安全策略而拒绝加载脚本... \”错误?
    如何解决由于Android的内容安全策略而拒绝加载脚本... \”错误?
    Unveiling the Mystery: Content Security Policy Directive ErrorsEncountering the enigmatic error "Refused to load the script..." when deployi...
    编程 发布于2025-04-13
  • 使用jQuery如何有效修改":after"伪元素的CSS属性?
    使用jQuery如何有效修改":after"伪元素的CSS属性?
    在jquery中了解伪元素的限制:访问“ selector 尝试修改“:”选择器的CSS属性时,您可能会遇到困难。 This is because pseudo-elements are not part of the DOM (Document Object Model) and are th...
    编程 发布于2025-04-13
  • 我可以将加密从McRypt迁移到OpenSSL,并使用OpenSSL迁移MCRYPT加密数据?
    我可以将加密从McRypt迁移到OpenSSL,并使用OpenSSL迁移MCRYPT加密数据?
    将我的加密库从mcrypt升级到openssl 问题:是否可以将我的加密库从McRypt升级到OpenSSL?如果是这样,如何?答案:是的,可以将您的Encryption库从McRypt升级到OpenSSL。可以使用openssl。附加说明: [openssl_decrypt()函数要求iv参...
    编程 发布于2025-04-13
  • SQL Server中如何高效地将列转换为行?
    SQL Server中如何高效地将列转换为行?
    SQL Server中列转行的深度指南 当处理包含大量指标列的表时,将这些列转换为行对于分析和报告目的非常有利。此转换涉及重新构建数据以创建具有不同架构的新表。 问题陈述 考虑以下表架构: [ID] [EntityID] [Indicator1] [Indicator2] [Indicator3]...
    编程 发布于2025-04-13
  • 如何实时捕获和流媒体以进行聊天机器人命令执行?
    如何实时捕获和流媒体以进行聊天机器人命令执行?
    在开发能够执行命令的chatbots的领域中,实时从命令执行实时捕获Stdout,一个常见的需求是能够检索和显示标准输出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    编程 发布于2025-04-13
  • 如何处理PHP文件系统功能中的UTF-8文件名?
    如何处理PHP文件系统功能中的UTF-8文件名?
    在PHP的Filesystem functions中处理UTF-8 FileNames 在使用PHP的MKDIR函数中含有UTF-8字符的文件很多flusf-8字符时,您可能会在Windows Explorer中遇到comploreer grounder grounder grounder gro...
    编程 发布于2025-04-13
  • 为什么尽管有效代码,为什么在PHP中捕获输入?
    为什么尽管有效代码,为什么在PHP中捕获输入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,输出...
    编程 发布于2025-04-13
  • PHP超时错误解决方案:执行时间限制处理指南
    PHP超时错误解决方案:执行时间限制处理指南
    处理最大执行时间超过php 当PHP脚本超过其最大允许的执行时间时,它会以致命的错误终止。虽然增加执行时间限制是一个常见的解决方案,但它可能并不总是实用的。本文探讨了一种捕获此错误并减轻其对用户体验的影响的替代方法。错误检测和处理使用此关闭功能,我们可以捕获最大执行时间超过错误。预期output ...
    编程 发布于2025-04-13

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3