到目前为止,我一直在构建从后端返回视图或模板的Laravel和Django应用程序。到现在为止还挺好。
但是,我现在正在构建一个从前端AMP代码调用的Laravel API。
在旧方式中,我在Laravel中这样做:来自web.php
Route::get('/', function () {
return view('welcome');
});
或者我可以从控制器返回视图。
但是,如果Laravel应用程序是返回JSON的API,我该如何设计URL?
基本上,如果有人点击主页上应该将他带到用户个人资料的链接,请说:
/user/{id}
我将在哪里确定此URL的外观以及要调用的端点?
您可以使用相同的路由语法,但不返回视图,而是返回json response。
Route::get('api/user', function () {
$data = ['status' => 'success', 'data' => 'stuff'];
return response()->json($data);
});
查看the response documentation所有可用类型的回复。
我终于绕过这个。至少我是这么认为的。
在web.php
我有一组带有我想要的URL的闭包。这些Closures返回没有数据的视图。与此类似:
Route::get('/', function () {
return view('welcome');
});
然后在视图中,我调用api.php
中指定的API端点,以在视图中呈现我需要的数据。
// List activities
Route::get('activities', 'ActivityController@index');
Laravel 5.3及以上版本提供了单独的路由文件qazxsw poi,您可以在其中编写与您的api请求相关的所有路由。
对于控制器只需在控制器文件夹中创建一个名为'Api'的单独文件夹,并在其中创建与api相关的控制器。
从那里你可以编写相应路线的功能。并将json作为routes/api.php
返回
或者你可以使用qazxsw poi包在laravel中创建一个单独的api模块。