如何在 Laravel 3 中为 RESTful API 创建路由?
我想使用 GET、PUT、POST 和 DELETE 来创建 API。
我希望所有路线都以/v1/
所以,我可以这样做:
http://api.example.com/v1/controller/method/parameter
并且只需创建相关的控制器来检查 Auth 并执行操作。
我建议你使用 laravel 4 而不是 laravel 3。Laravel 4 非常擅长创建 RESTful API,你可以很快上手。这是一个如何:
http://net.tutsplus.com/tutorials/php/laravel-4-a-start-at-a-restful-api/
如果您是 API 新手,也可以观看此视频
https://blog.apigee.com/detail/restful_api_design
他们建议像这样传递参数:api.test.com/v1/dogs?state=running
我最近开始使用 laravel 4 自己开发一个 RESTful API 服务,到目前为止进展顺利。据说 laravel 4 也将在 5 月发布。
对于已经存在的路由,我假设您需要添加一个带有“之前”的过滤器,然后将“url”作为前缀,将其传递回原始路由。
所以在 routes.php 中,类似:
Route::get('login', 'user@login', array('before' => 'guest'));
Route::post('login', 'user@login', array('before' => 'guest'));
Route::get('logout', 'user@logout', array('before' => 'auth'));
Route::filter('before', function()
{
// Do stuff before every request to your application...
$url = "test";
$controller = "user@test";
$filter = array('before' => 'guest');
return Route::get('/v1/' . $url, $controller, $filter);
});
但我不确定如何用传入的请求填写 $url、$controller、$filter(也许 Request:: 有一些东西)。
虽然我也是 Laravel 的新手,还没有研究过事件和过滤器。