在视图中显示从 Laravel API 资源返回的数据



在 laravel 5.7 应用程序中,是否可以在控制器中创建 API 资源并在视图中显示结果?例如,如果我有这样的控制器

public function index()
{
    return BookResource::collection(Book::all());
}

以及我的 API 文件中的这条路线.php

Route::get('books', 'BookController@index');

当我向../api/books发出获取请求时,我将能够在邮递员中看到所有书籍。

如果我想在向/books发出 get 请求时在视图中显示书籍,我将如何操作?这是我对如何去做的想法

  1. 在 web 中创建路由.php以获取books
  2. 从 BookController 中删除 API 资源并获取书籍列表
  3. 在 API 中添加函数.php获取书籍路由(返回函数内的书籍资源(
  4. 在视图中显示来自控制器的数据

这会是正确的方法吗?简单地这样提出问题,您将如何构建应用程序并公开其 api?

您不必删除路由,您可以保留apiweb路由以访问Book模型。

可以这样想:您的书籍存储在数据库中,您的webapi路由只是访问该数据库的两种不同方式,但它们可以(并且必须(存在于单独的文件中。

基本上你可以有web.php

Route::resource('books', 'BooksController');

并在api.php

Route::resource('books', 'ApiBooksController');

最新更新