update docs
Showing
1 changed file
with
21 additions
and
0 deletions
| ... | @@ -123,6 +123,8 @@ | ... | @@ -123,6 +123,8 @@ |
| 123 | 123 | ||
| 124 | ## 路由设置 | 124 | ## 路由设置 |
| 125 | 125 | ||
| 126 | ### 默认路由RESTFul规则 | ||
| 127 | |||
| 126 | 路由的主要功能是实现从请求地址到实现方法,beego中封装了`Controller`,所以路由是从路径到`ControllerInterface`的过程,`ControllerInterface`的方法有如下: | 128 | 路由的主要功能是实现从请求地址到实现方法,beego中封装了`Controller`,所以路由是从路径到`ControllerInterface`的过程,`ControllerInterface`的方法有如下: |
| 127 | 129 | ||
| 128 | type ControllerInterface interface { | 130 | type ControllerInterface interface { |
| ... | @@ -179,6 +181,7 @@ | ... | @@ -179,6 +181,7 @@ |
| 179 | this.Ctx.Params[":path"] | 181 | this.Ctx.Params[":path"] |
| 180 | this.Ctx.Params[":ext"] | 182 | this.Ctx.Params[":ext"] |
| 181 | 183 | ||
| 184 | ### 自定义方法及RESTFul规则 | ||
| 182 | 上面列举的是默认的请求方法名(请求的method和函数名一致,例如GET请求执行Get函数,POST请求执行Post函数),如果用户期望自定义函数名,那么可以使用如下方式: | 185 | 上面列举的是默认的请求方法名(请求的method和函数名一致,例如GET请求执行Get函数,POST请求执行Post函数),如果用户期望自定义函数名,那么可以使用如下方式: |
| 183 | 186 | ||
| 184 | beego.Router("/",&IndexController{},"*:Index") | 187 | beego.Router("/",&IndexController{},"*:Index") |
| ... | @@ -221,6 +224,24 @@ | ... | @@ -221,6 +224,24 @@ |
| 221 | 224 | ||
| 222 | >>>那么执行POST请求的时候,执行PostFunc而不执行AllFunc | 225 | >>>那么执行POST请求的时候,执行PostFunc而不执行AllFunc |
| 223 | 226 | ||
| 227 | ### 自动化路由 | ||
| 228 | 用户首先需要把需要路由的控制器注册到自动路由中: | ||
| 229 | |||
| 230 | beego.AutoRouter(&controllers.ObjectController{}) | ||
| 231 | |||
| 232 | 那么beego就会通过反射获取该结构体中所有的实现方法,你就可以通过如下的方式访问到对应的方法中: | ||
| 233 | |||
| 234 | /object/login 调用ObjectController中的Login方法 | ||
| 235 | /object/logout 调用ObjectController中的Logout方法 | ||
| 236 | |||
| 237 | 除了前缀两个/:controller/:method的匹配之外,剩下的url,beego会帮你自动化解析为参数,保存在`this.Ctx.Params`当中: | ||
| 238 | |||
| 239 | /object/blog/2013/09/12 调用ObjectController中的Blog方法,参数如下:map[0:2013 1:09 2:12] | ||
| 240 | |||
| 241 | |||
| 242 | >>> 方法名在内部是保存了用户设置的,例如Login,url匹配的时候都会转化为小写,所以,/object/LOGIN这样的url也一样可以路由到用户定义的Login方法中 | ||
| 243 | |||
| 244 | |||
| 224 | ## 静态文件 | 245 | ## 静态文件 |
| 225 | 246 | ||
| 226 | Go语言内部其实已经提供了`http.ServeFile`,通过这个函数可以实现静态文件的服务。beego针对这个功能进行了一层封装,通过下面的方式进行静态文件注册: | 247 | Go语言内部其实已经提供了`http.ServeFile`,通过这个函数可以实现静态文件的服务。beego针对这个功能进行了一层封装,通过下面的方式进行静态文件注册: | ... | ... |
-
Please register or sign in to post a comment