php - 如何在 Laravel 4 中组织不同版本的 REST API Controller ?

标签 php laravel laravel-4

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

最佳答案

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

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

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

namespace Api\v1;

namespace Api\v2;

然后在我的 route 我做了这样的事情:

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');
});

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

关于php - 如何在 Laravel 4 中组织不同版本的 REST API Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16501010/

相关文章:

PHP - 使用静态方法动态扩展父类

php - 仅使用 composer.lock 安装 Composer

php - 快速从文件执行多个查询

php - laravel 的身份验证可以记住没有密码的用户吗?

php - 全新安装时出现 "Error in exception handler"

laravel-4 - Laravel 4 Eager Loading 约束

PHP问卷计算设计

php - Laravel 最大文件大小验证规则不起作用

php - 如何在 laravel 4 中使用数据透视表上的 where 条件来获取数据

mysql - Laravel `model->update($data)` 将下午时间更改为上午