Php Laravel和多条路线;嵌套的;任务和参数
我刚刚开始修补Laravel(PHP新手警报),我对如何在这个框架上实现RESTJSONAPI有疑问 所需的URL路径应为:Php Laravel和多条路线;嵌套的;任务和参数,php,rest,laravel-4,routing,Php,Rest,Laravel 4,Routing,我刚刚开始修补Laravel(PHP新手警报),我对如何在这个框架上实现RESTJSONAPI有疑问 所需的URL路径应为: http://api.mysite.com/APIKEY/FUNCTION/(ARGUMENTS)* 但最好的方法是什么呢 我没有找到足够的解释性指南,因为假设每个功能(身份验证、搜索等)位于不同的路径上 目前,我成功地为所需的数据创建了迁移和模型,并且我还以这种方式设置了一条路线: Route::get('/{apikey}/{function}/{arg1}/{ar
http://api.mysite.com/APIKEY/FUNCTION/(ARGUMENTS)*
但最好的方法是什么呢
我没有找到足够的解释性指南,因为假设每个功能(身份验证、搜索等)位于不同的路径上
目前,我成功地为所需的数据创建了迁移和模型,并且我还以这种方式设置了一条路线:
Route::get('/{apikey}/{function}/{arg1}/{arg2}/{arg3?}',
//The first two arguments are mandatory, the 3rd optional
function($apikey,$function,$arg1,$arg2)
{
return Response::json(array(
'status'=>'200'),
200);
})
->where(array('function'=>'[A-Za-z]+'));
这应该是正确的行动流程,但我有一些疑问
route::group
的所有示例中,都有一个静态前缀,但这里的前缀是apikey,一个变量)模型
从数据库获取数据@一,。我想我可能会为此使用路由过滤器,如下所示:
Route::filter('apikey', function(){
if (Shared\API::checkIfKeyIsValid(Input::get('key') != true){
return Shared\Errors::handleError("bad-api-key");
}
});
您可以看到此筛选器检查以确保某些会话变量已设置并匹配,如果它返回任何内容,则表示失败,并且不会将用户发送到路由正常运行的位置。你可以这样称呼它:
Route::get('play/{id}', array('before' => 'loggedin', 'uses' => 'ThingController@doThing'));
@二,。我认为路线组是我构建此结构的方式(如果我理解您的要求)。编辑:自从我回答这个问题后,你已经改变了这个问题,因为前缀是一个变量。我会对参数进行重新排序,以便API键位于末尾,或者您可以看看这个,这可能会满足您的需要: @三,。数据的返回应通过控制器完成,数据来自模型。可以将其作为视图返回,也可以将其作为JSON返回,如下所示:
return Response::json($data);
1-如何处理身份验证?调用返回true或false的控制器函数?一点也不清楚。对于身份验证,我只想发送api密钥并对其进行一些检查。在创建身份验证筛选器之前,我应该定义身份验证(密钥检查)功能,但我不知道如何定义:)2-确定3-Ok@Vektor88我更新了#1,希望能更好地解释它。我在一个共享文件夹中构建了我的类,然后这个示例假设我有一个名为“API”的类。我正在调用一个名为“checkIfKeyIsValid”的函数,该函数执行提升操作,如果键有效,则返回
true
,如果键无效,则返回false
。过滤器检查该函数返回的内容,如果它没有返回true
,它会抛出一个(自定义)错误,因为它说return
,过滤器失败,路由处理停止。感谢编辑,我开始了解我应该做什么以及面向对象的PHP是如何工作的。但是第2点从一开始就需要变量前缀,我没有做任何更改!
return Response::json($data);