官方网站: https://beego.me/docs/advantage/docs.md
安装:
go get github.com/astaxie/beego
go get github.com/beego/bee
使用工具bee构建项目
bee new myproduct
beego是一个MVC架构,
M --- model
C --- Controller
V --- View
beego API ----> 路由 -----> Controller -----> View/Model 这只是一个大概的过程
beego路由规则:
1.基础路由:
beego.Router("/api/:id", &controller{})
这个路由可以匹配到 /api/
/api/123
beego.Router("/api/:id!", &controller{})
匹配: /api/3233 :id=3233
但所不能匹配/api/
beego.Router("/api/:id([0-9]+)", &controller{})
自定义正则匹配: /api/124 :id=123
beego.Router("/download/*.*", &controller{})
匹配: /download/file/api.xml :path= file/api :ext=xml
beego.Router("/download/*", &controller{})
匹配: /download/file/api.xml :splat= file/api.xml
beego.Router("/api/:all", &controller{})
匹配: /api/path/to/123.html :all= path/to/123.html
beego.Router("/api/:id:int", &controller{})框架实现正则
beego.Router("/api/:id:string", &controller{})框架实现正则
2. 印射路由:
beego.Router("/api/list", &controller{}, "*:ListFood")所有方法,对应ListFood
beego.Router("/api/create", &controller{}, "post:ListFood")
beego.Router("/api", &controller{}, "post,get:ListFood")
beego.Router("/api", &controller{}, "post:ListPost;get:ListGet")
3. 自动化路由:
beego.AutoRouter(&controller.ObjectController)
/object/login 调用ObjectController中的Login
/object/logout 调用ObjectController中的Logout
注意: /object/LOGIN 它会先转化成小写,也能匹配到。
其他的都解析为参数保存在this.Ctx.Input.Param
ctx.Output.Body([]byte("notAllowed"))
ctx.Input.Domain()
namespace:
ns := beego.NewNamespace("/v1").Filter("before", auth).Get("/notallowed", func(ctx *context.Context){
})
获取beego配置文件的数据
beego.AppConfig.Strings("demo::peers") [one two three]
beego.AppConfig.String("demo::key")
beego.AppConfig.Int("mysql")