在 laravel 5.7 应用程序中,是否可以在控制器中创建 API 资源并在视图中显示结果?例如,如果我有这样的控制器
public function index()
{
return BookResource::collection(Book::all());
}
以及我的 API 文件中的这条路线.php
Route::get('books', 'BookController@index');
当我向../api/books
发出获取请求时,我将能够在邮递员中看到所有书籍。
如果我想在向/books
发出 get 请求时在视图中显示书籍,我将如何操作?这是我对如何去做的想法
- 在 web 中创建路由.php以获取
books
- 从 BookController 中删除 API 资源并获取书籍列表
- 在 API 中添加函数.php获取书籍路由(返回函数内的书籍资源(
- 在视图中显示来自控制器的数据
这会是正确的方法吗?简单地这样提出问题,您将如何构建应用程序并公开其 api?
您不必删除路由,您可以保留api
和web
路由以访问Book
模型。
可以这样想:您的书籍存储在数据库中,您的web
和api
路由只是访问该数据库的两种不同方式,但它们可以(并且必须(存在于单独的文件中。
基本上你可以有web.php
Route::resource('books', 'BooksController');
并在api.php
Route::resource('books', 'ApiBooksController');