Laravel 路由、api 和 web 用例
Posted
技术标签:
【中文标题】Laravel 路由、api 和 web 用例【英文标题】:Laravel routes, api and web use cases 【发布时间】:2020-09-09 05:37:03 【问题描述】:我正在尝试围绕 web 路由和 api 路由的用例。
到目前为止,据我了解
1) 网络路由,当我们想要返回视图时使用。
2) Api 路由,当我们要返回 json(Api 资源/集合)时使用。
但是,这两种情况都涉及 GET 请求。
当我们发出 POST 或 PUT 请求时,我们是把这些路由放在 api.php 还是 web.xml 中呢? php。是否取决于请求是否通过 AJAX 调用?
另外,我不知道在什么情况下我们应该使用 api 中间件和 web 中间件 默认情况下,web.php 使用 web 中间件,而 api.php 使用 api 中间件。
如果我们已经登录并且想要进行 AJAX 调用,我们是否必须将该路由放在 api.php 或 web.php 中>.
我们是否仅在使用基于令牌的身份验证登录时才使用 api 中间件?
【问题讨论】:
【参考方案1】:您可以使用相同的逻辑来解释 POST
或 PUT
请求对任一类型的使用:
API 路由
API POST
/PUT
请求将创建/更新某些实体并返回 JSON 响应,例如 POST
的新创建模型或 PUT
的更新模型。
return response()->json($model);
这在您有 javascript 代码调用 AJAX 请求的情况下很有用。当您将数据发送到 API 端点时,您应该会收到一个状态 200
,其中包含您刚刚创建/更新的模型的 JSON 表示。然后你的 javascript 代码决定下一步做什么,比如关闭一个弹出窗口。
网络路由
网络POST
/PUT
请求也会创建/更新某些实体,但通常会返回重定向到新页面:
session()->flash('alert', 'Model X has been updated!');
return redirect()->to('someurl');
// or
return redirect()->route('my.route.name');
POST
/PUT
web.php
中的路由使用简单的 <form action="..." method="POST'>
形式调用。 Javascript 在这里被排除在外,因此表单提交会将您的表单数据发送到给定的端点,并将响应直接返回到您的浏览器(可能是名为 my.route.name
的视图)。
【讨论】:
以上是关于Laravel 路由、api 和 web 用例的主要内容,如果未能解决你的问题,请参考以下文章
IOS 应用服务使用哪些 laravel 路由(Web 路由或 API 路由)
Laravel、AngularJS 和 CORS 的路由问题