goframe路由相关变量
以下是对话中涉及的 GoFrame 框架核心变量、函数及其含义,重点标注路由相关部分:
¶一、核心变量
ghttp.Server- 含义:GoFrame 框架的 HTTP 服务器对象,用于创建和管理 HTTP 服务。
- 路由相关:是所有路由配置的载体,通过它可以创建路由组、注册路由规则。
ghttp.Router- 含义:路由管理器对象,负责管理具体的路由规则(路径、方法、处理函数的映射)。
- 路由相关:
Server内置的路由管理组件,Group()方法的实际调用者(早期版本中需通过Server.Router获取,新版本可直接通过Server调用)。
ghttp.RouterGroup- 含义:路由分组对象,用于对路由进行归类管理(如按模块、权限划分)。
- 路由相关:通过
Group(prefix)方法创建,支持嵌套分组,便于批量添加前缀、中间件。
g.Meta- 含义:接口元数据结构体,用于在
api层定义接口的元信息。 - 路由相关:通过
path和method字段指定接口路径和请求方法(自动路由模式下直接决定路由规则),如g.Meta{path:"/user/login", method:"post"}。
- 含义:接口元数据结构体,用于在
¶二、核心函数 / 方法
ghttp.GetServer()- 含义:获取全局唯一的 HTTP 服务器实例(单例模式)。
- 路由相关:返回的
Server对象可直接用于注册路由,自动读取配置文件中的服务器设置(如端口)。
g.Server()- 含义:
ghttp.GetServer()的简写,功能完全一致,获取全局 HTTP 服务器实例。
- 含义:
Server.Run()- 含义:启动 HTTP 服务器,监听配置文件或代码中指定的端口。
- 路由相关:服务器启动后,所有注册的路由规则开始生效。
Server.Group(prefix string)- 含义:创建路由分组,为一组路由统一添加前缀(如
/api/v1)。 - 路由相关:路由分组的核心方法,返回
RouterGroup对象,用于后续绑定具体路由。
- 含义:创建路由分组,为一组路由统一添加前缀(如
RouterGroup.GET(path, handler)/POST/PUT/DELETE- 含义:为路由分组注册具体的路由规则,指定 HTTP 方法、路径和处理函数。
- 路由相关:手动路由模式的核心,例如
group.POST("/login", controller.User.Login)表示将POST /prefix/login映射到User.Login方法。
Request.Parse(req interface{})- 含义:解析 HTTP 请求参数,自动绑定到
api层的请求结构体,并执行参数校验。 - 路由相关:在控制器中用于获取前端请求参数,与
api层的结构体和g.Meta配合使用。
- 含义:解析 HTTP 请求参数,自动绑定到
g.Cfg().MustGet(ctx, "server")- 含义:读取配置文件中指定节点的配置(此处为
server节点)。 - 路由相关:可用于将配置文件中的服务器设置(如端口、路由前缀)绑定到独立的
ghttp.Server实例。
- 含义:读取配置文件中指定节点的配置(此处为
ghttp.NewServer()- 含义:创建一个独立的 HTTP 服务器实例(非单例,可创建多个)。
- 路由相关:默认不读取全局配置,需手动指定端口或绑定配置,适用于多服务器场景。
¶三、路由相关核心概念补充
- 自动路由(Auto Router)
- 机制:通过
api层g.Meta中的path和method自动生成路由,无需手动编写router层代码。 - 关联:框架通过反射将
api层请求结构体与控制器方法绑定,直接注册路由。
- 机制:通过
- 手动路由
- 机制:在
router层通过Group()、GET()/POST()等方法显式注册路由,需保证与api层g.Meta定义一致。 - 优势:支持复杂路由配置(如中间件、版本控制、动态路由参数)。
- 机制:在
- 中间件绑定
- 方式:通过路由分组的第二个参数绑定,如
group.Group("/user", middleware.Auth),表示该分组下所有路由都需经过Auth中间件验证。
- 方式:通过路由分组的第二个参数绑定,如
这些变量和函数是 GoFrame 路由管理的核心,理解它们的作用和关联关系,能帮助更好地掌握框架的路由设计思想(如自动路由与手动路由的区别、配置文件的作用范围等)。