我正在使用 Laravel 5.1 构建 API。
我有 3 个部分访问权限:用户、管理员、 super 管理员。
我很好奇处理 Controller 的做法。现在我为每个部分制作了 3 个不同的 Controller 。但有时我需要在 Controller 内调用相同的函数。如Product:all()
。
我真的应该制作 3 个不同的 Controller 还是我只能使用 2 个 Controller 以获得最佳实践?
最佳答案
当返回的数据集对所有用户(即基本用户、管理员和 super 管理员)都相同时,我只会使用一个 Controller /一个路由 /api/v1/products
。
我猜每个管理员/ super 管理员也是一个用户。因此,您应该使用中间件保护您的 /api/v1/products
路由,该中间件只检查用户是否是经过身份验证的用户,因为这样他就可以访问数据。
如果有一些产品以外的数据只能由管理员/ super 管理员访问,您应该为此创建另一个中间件。永远不需要为完全相同的 API 创建两个或多个 Controller /路由。
关于php - Laravel API 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34325355/