宿松网站建设设计,有哪些做红色旅游景点的网站,小商店助手小程序,肉部网站建设包括哪些Beego的路由控制 二、路由控制 web框架中#xff0c;路由是重要的一环#xff0c;对于beego的路由配置如何#xff1f; 2.1 默认路由 让我们从入口文件main.go先分析起来吧#xff1a; package mainimport (_ beegoDemo/routersgithub.com/astaxie/beego…Beego的路由控制 二、路由控制 web框架中路由是重要的一环对于beego的路由配置如何 2.1 默认路由 让我们从入口文件main.go先分析起来吧 package mainimport (_ beegoDemo/routersgithub.com/astaxie/beego
)func main() {beego.Run()
} 我们看到 main 函数是入口函数但是我们知道 Go 的执行过程是如下图所示的方式 这里我们就看到了我们引入了一个包 _ beegoDemo/routers,这个包只引入执行了里面的 init 函数那么让我们看看这个里面做了什么事情 package routersimport (beegoDemo/controllersgithub.com/astaxie/beego
)func init() {beego.Router(/, controllers.MainController{})
} 路由包里面我们看到执行了路由注册 beego.Router, 这个函数的功能是映射 URL 到 controller第一个参数是 URL (用户请求的地址)这里我们注册的是 /也就是我们访问的不带任何参数的 URL第二个参数是对应的 Controller也就是我们即将把请求分发到那个控制器来执行相应的逻辑我们可以执行类似的方式注册如下路由 beego.Router(/user, controllers.UserController{}) 看一下这个Router 的源码 func Router(rootpath string, c ControllerInterface, mappingMethods ...string) *App {BeeApp.Handlers.Add(rootpath, c, mappingMethods...) return BeeApp
} 我们beego的路由控制在router/router.go这个代码文件控制的我们在init这个函数根据自己需求来更改路由规则了。 2.2 基础路由 beego 存在三种方式的路由固定路由、正则路由、自动路由。 从 beego 1.2 版本开始支持了基本的 RESTful 函数式路由,应用中的大多数路由都会定义在 routers/router.go 文件中。最简单的 beego 路由由 URI 和闭包函数组成。 2.2.1 基本 GET 路由 beego.Get(/,func(ctx *context.Context){ctx.Output.Body([]byte(hello world))
}) 2.2.2 基本 POST 路由 beego.Post(/alice,func(ctx *context.Context){ctx.Output.Body([]byte(wangergou))
}) 2.2.3 注册一个可以响应任何 HTTP 的路由 beego.Any(/foo,func(ctx *context.Context){ctx.Output.Body([]byte(ruby))
}) 2.2.4 所有的支持的基础函数如下所示 beego.Get(router, beego.FilterFunc)
beego.Post(router, beego.FilterFunc)
beego.Put(router, beego.FilterFunc)
beego.Patch(router, beego.FilterFunc)
beego.Head(router, beego.FilterFunc)
beego.Options(router, beego.FilterFunc)
beego.Delete(router, beego.FilterFunc)
beego.Any(router, beego.FilterFunc) 2.2.5 支持自定义的 handler 实现 有些时候我们已经实现了一些 rpc 的应用,但是想要集成到 beego 中或者其他的 httpserver 应用集成到 beego 中来。现在可以很方便的集成 s : rpc.NewServer()
s.RegisterCodec(json.NewCodec(), application/json)
s.RegisterService(new(HelloService), )
beego.Handler(/rpc, s) beego.Handler(router, http.Handler) 这个函数是关键第一个参数表示路由 URI第二个就是你自己实现的 http.Handler注册之后就会把所有 rpc 作为前缀的请求分发到 http.Handler 中进行处理。 这个函数其实还有第三个参数就是是否是前缀匹配默认是 false如果设置了 true那么就会在路由匹配的时候前缀匹配即 /rpc/user 这样的也会匹配去运行。转载于:https://www.cnblogs.com/Paul-watermelon/articles/11031703.html