0

到目前为止,我一直在构建从后端返回视图或模板的 Laravel 和 Django 应用程序。到目前为止,一切都很好。

但是,我现在正在构建一个从前端AMP代码调用的 Laravel API 。

我在 Laravel 中以旧方式执行此操作:从web.php

Route::get('/', function () {
    return view('welcome');
});

或者我可以从控制器返回视图。

但是,如果 Laravel 应用程序是返回 JSON 的 API,我该如何设计 URL?

基本上,如果有人点击主页上的链接,应该将他带到用户个人资料,请说:

/user/{id}

我将在哪里决定这个 URL 的外观以及调用哪个端点?

4

3 回答 3

2

您可以使用相同的路由语法,但不是返回视图,而是返回json 响应

Route::get('api/user', function () {
    $data = ['status' => 'success', 'data' => 'stuff'];
    return response()->json($data);
});

查看所有可用响应类型的响应文档

于 2018-09-07T06:47:12.223 回答
0

Laravel 5.3 及以上版本提供了单独的路由文件routes/api.php,您可以在其中编写与您的 api 请求相关的所有路由。

对于控制器,只需在名为“Api”的控制器文件夹中创建一个单独的文件夹,并在其中创建与 api 相关的控制器。

从那里你可以为相应的路线编写函数。并将 json 返回为 return response()->json(['data'=>$data]);

或者你可以使用https://github.com/nWidart/laravel-modules包在 laravel 中创建一个单独的 api 模块。

于 2018-09-07T07:30:03.597 回答
0

我终于把头绕了过去。至少我是这么认为的。

web.php我有一组带有我想要的 URL 的闭包。这些闭包返回没有数据的视图。与此类似:

Route::get('/', function () {
    return view('welcome');
});

然后在视图中调用指定的 API 端点api.php来呈现视图中我需要的数据。

// List activities
Route::get('activities', 'ActivityController@index');
于 2018-09-07T07:11:54.673 回答