用户资源具有name
、status
属性和许多其他字段。用户可以更新其name
,但只有管理员用户可以更新status
。
在典型的rest设计中,name
更新可以
patch
/users/123
{
name:"John"
}
路线将
Route::apiResource('users',UserController::class);
在这里,修补程序请求将调用UserController
类的update
方法
同样,status
更新也是一个补丁请求,它调用UserController
类的update
方法。
现在的情况是,从业务逻辑的Angular 来看,这两个更新是不同的操作,但从REST设计来看,可以用于这两个操作的是同一个补丁请求。
所以我的问题是
1.正如我上面所说的,我们有相同的控制器操作update
将被调用用于这两个操作。
1.我对REST的理解正确吗?
注意:请不要告诉我status
是一个资源,在这种情况下,想象一下,如果该用户的每个属性都有不同的业务逻辑要在更新之前完成。那么,每个属性都是一个资源吗?
好奇地等待建议
谢谢您
1条答案
按热度按时间bxfogqkk1#
您的理解是正确的,但从我的Angular 来看,这仍然是两个端点:
向代码中添加访问控制,如下所示:
你应该能够根据文档来做这件事。https://laravel.com/docs/5.1/authorization我不使用Laravel,但是在阅读了1分钟之后,我认为你需要添加一个策略,在那里你可以放置上面的if-else语句,仅此而已。