go iris框架 mvc架构模式下,如何给自动注册路由的命名?困扰多时,望大神指点秘境,感谢。
在非MVC架构模式下。路由注册的时候,可以为每一条路由命名,方便做权限管理的时候,自动获取每条路由的中文名。这个问题困扰了很久了,翻阅了很多资料,没有找到解决办法,望大神指点迷津。感谢。
非MVC架构模式下 为每一条路由命名:
router.go
admin.PartyFunc("/users", func(users iris.Party) {
users.Get("/", controllers.GetAllUsers).Name = "用户列表"
users.Get("/{id:uint}", controllers.GetUser).Name = "用户详情"
users.Post("/", controllers.CreateUser).Name = "创建用户"
users.Put("/{id:uint}", controllers.UpdateUser).Name = "编辑用户"
users.Delete("/{id:uint}", controllers.DeleteUser).Name = "删除用户"
})
在iris MVC架构模式下面,是注册controller,路由时更加函数名称自动注册的。如何实现向上面代码的功能一样,为每一条路由设置一个中文名称?
router.go
usersParty := v1.Party("/users")
//usersParty.Use(middleware.JwtHandler().Serve, casbinMiddleware.ServeHTTP) //验证jwt token
usersParty.Use(middleware.JwtHandler().Serve) //验证jwt token
users := mvc.New(usersParty)
users.Register(ctx, userService)
users.Handle(new(controllers.UsersController))
users_controller.go
package controllers
import (...)
type UsersController struct {
Ctx iris.Context
Service services.IUserService
}
/**
* 新增用户 * Request Type: POST * Request URL : /api/v1/users/add **/
func (u *UsersController) PostAdd() {...}
/**
* 删除一个用户 * Request Type: DELETE * Request URL : /api/v1/users/{param1:int64} **/
func (r *UsersController) DeleteBy(userId int64) {...}
/**
* 修改用户 * Request Type: PUT * Request URL : /api/v1/users/{param1:int64} **/
func (r *UsersController) PutBy(userId int64) {...}
/**
* 修改个人信息 修改自己的信息 * Request Type: PUT * Request URL : /api/v1/users/info/{param1:int64} **/
func (r *UsersController) PutInfoBy(userId int64) {...}
/**
* 修改密码功能 * Request Type: PUT * Request URL : /api/v1/user/pwd/{param1:int64} **/
func (r *UsersController) PutPwdBy(userId int64) {...}
/**
* 获取个人信息 登录后获取自己的信息信息 * Request Type: GET * Request URL : /api/v1/users/info **/
func (r *UsersController) GetInfo() {...}
/**
* 获取所有用户列表 * Request Type: GET * Request URL : /api/v1/users/all **/
func (r *UsersController) GetAll() {...}
/**
* 返回所有角色列表 回收站 * Request Type: GET * Request URL : /api/v1/users/trash **/
func (r *UsersController) GetTrash() {...}
/**
* 获取一条user的信息 * Request Type: GET * Request URL : /api/v1/users/{param1:int64} **/
func (r *UsersController) GetBy(userId int64) {...}
推荐文章: