restful 风格 api 的一些疑问
给用户分配角色有如下两个设计
POST /api/v1/user/assign-roles
{ userID: 1, roleIDs: [1,2,3] }
/api/v1/user/:id/roles
{ roleIDs:[1,2,3] }
我喜欢第一种方式,原因有两个
- 参数全部在一起,后端一个结构体直接全部接收
- 后端的方法只需要一个入参参数,如下
func (i *RoleService) AssignRoleToUser(req *AssignRoleToUser) error { ... }
第二种则需要两个参数,我不喜欢这种,不喜欢的原因如下(但是 GPT,豆包回答都推荐这种方式)
- 接收参数需要多一行代码去接收id,然后再接收参数
- 方法入参变成了两个
- 方法名称意义模糊
func (i *RoleService) AssignRoleToUser(userID uint, req *AssignRoleToUser) error { .... }
大家觉得哪一种更好,为什么?如果都不好,那么更好的应该是什么样子的?
推荐文章: