【发布时间】:2023-04-10 03:34:01
【问题描述】:
我正在构建一个 REST API 服务器(实际上是在 Lumen 中,而不是 Laravel),它具有多个端点,允许对用户、帐户和产品等资源执行各种操作。例如,这里是我为 User 资源定义的路由:
GET /v1.0/user
POST /v1.0/user
GET /v1.0/user/{username}
PUT /v1.0/user/{username}
DELETE /v1.0/user/{username}
我目前在单个控制器中定义了特定资源的所有这些 API 路由。例如,这是我的用户资源路由:
$router->get('/v1.0/user', 'UserController@listAll');
$router->post('/v1.0/user', 'UserController@createUser');
$router->get('/v1.0/user/{username}', 'UserController@getUser');
$router->put('/v1.0/user/{username}', 'UserController@updateUser');
$router->delete('/v1.0/user/{username}', 'UserController@deleteUser');
一些控制器逻辑变得非常复杂,我现在发现我的控制器文件变得非常非常长。我现在想我应该为每个路由使用一个单独的控制器文件,以使代码更易于维护。
我的问题是关于文件/文件夹命名或结构,我是否应该遵循任何习惯用法或约定。我是否应该在 Controllers 下为每个资源创建一个子文件夹(例如:Controllers/User/UserCreateController.php)?还是这完全是个人选择的问题?
【问题讨论】:
-
你在你的控制器方法中做了什么,这使它变得复杂,你不需要验证,查询就像你控制器中的东西。