20

我知道有一种方法可以为带有路由的 REST API 创建版本化 URL,但是组织控制器和控制器文件的最佳方法是什么?我希望能够创建新版本的 API,并且仍然让旧版本至少运行一段时间。

4

1 回答 1

37

我最终在 app/controllers 下使用了命名空间和目录:

/app
  /controllers
    /Api
      /v1
        /UserController.php
      /v2
        /UserController.php

在 UserController.php 文件中,我相应地设置了命名空间:

namespace Api\v1;

或者

namespace Api\v2;

然后在我的路线中,我做了这样的事情:

Route::group(['prefix' => 'api/v1'], function () {
  Route::get('user',      'Api\v1\UserController@index');
  Route::get('user/{id}', 'Api\v1\UserController@show');
});

Route::group(['prefix' => 'api/v2'], function () {
  Route::get('user',      'Api\v2\UserController@index');
  Route::get('user/{id}', 'Api\v2\UserController@show');
});

我不肯定这是最好的解决方案。但是,它允许以不相互干扰的方式对控制器进行版本控制。如果需要,您可能可以对模型进行类似的验证。

于 2013-05-14T01:53:57.143 回答