【发布时间】:2019-10-20 04:16:15
【问题描述】:
在 laravel 5.7 应用程序中,是否可以在控制器中创建 API 资源并在视图中显示结果?例如,如果我有这样的控制器
public function index()
{
return BookResource::collection(Book::all());
}
我的 api.php 文件中的这条路线
Route::get('books', 'BookController@index');
当我向../api/books 发出获取请求时,我将能够在邮递员中查看所有书籍。
如果我想在向/books 发出获取请求时在视图中显示书籍,我该怎么做?这是我对如何去做的想法
- 在web.php中创建一个路由来获取
books - 从 BookController 中移除 api 资源并获取书籍列表
- 在api.php获取书籍路由中添加函数(函数内部返回书籍资源)
- 在视图中显示来自控制器的数据
这会是正确的方法吗?简单地把问题这样说,你将如何构建一个应用程序并公开它的 api?
【问题讨论】:
-
您需要两条路由 - 一条返回包含 JS 的 html 视图,该 JS 将向返回数据响应的第二条(API 路由)发出请求。由于你最终会得到很多冗余命名的东西,比如“/books”和“/api/books”,laravel 现在构建了两个单独的路由文件以保持独立。路由的这种文件结构完全是任意的,您可以根据自己的意愿进行管理。如果您遇到困难并且需要帮助,坚持使用默认设置会有所帮助。 (这是评论,不是答案 b/c 我不知道这是否回答了问题)
-
使用passport,很容易消费自己的api:laravel.com/docs/5.7/…
标签: php laravel laravel-5.7