我正在使用Laravel构建RESTful api。我对如何进行路由感到困惑。
我有以下api控制器
class APIController extends BaseController{
public function sendMsg($authid, $roomid, $msg){
}
public function getMsg($roomid, $timestamp){
}
}
我想要访问的URL格式如下所示:
http://example.com/api/{functionName}/{parameter1}/{parameter2}/.../
这里,在第一个参数中,我将有一个函数名,它应该映射到控制器类中的函数,然后是控制器需要的参数。
例如
要访问sendMsg()
功能,网址应如下所示:
http://example.com/api/sendMsg/sdf879s8/2/hi+there+whats+up
要访问getMsg()
功能,网址应如下所示
http://example.com/api/getMsg/2/1395796678
<小时/> 那么......我怎样才能编写我的路线,以便能够处理动态数字和不同的参数?
我可以为每个函数名写一个路由,如下所示:
Route::get('/api/sendmsg/{authid}/{msg}', function($authid, $msg){
//call function...
});
和其他功能相同。这很好但是有没有办法在一条路线中将所有功能组合到APIController?
答案 0 :(得分:2)
是的,您可以使用最适合构建APIController
的{{3}}在一条路线中将所有功能合并到API
:
Route::resource('api' ,'APIController');
但是,从技术上讲,它根本不是一条路由,而是Laravel
为每个函数生成多个routes
,为了检查路由,您可以从命令提示符/终端运行php artisan routes
命令
要创建resourceful controller
,您可以从命令行运行以下命令:
php artisan controller:make APIController
这将创建一个具有6个函数的控制器(仅骨架/结构),每个函数将映射到HTTP
动词。这意味着,根据请求类型(GET / POST等),将调用该函数。例如,如果使用http://domain.com/api
使用GET
请求发出请求,则会调用getIndex
方法。
public function getIndex()
{
// ...
}
您应该检查文档以获得深入的正确理解。这被称为RESTful
api。