3

我正试图围绕 web 路由和 api 路由的用例。

到目前为止,据我了解

1) Web routes,当我们想要返回视图时使用。

2) Api routes,当我们想要返回 json ( Api resource/collection ) 时使用。

但是,这两种情况都指的是GET请求。

当我们发出POSTPUT请求时,我们是把这些路由放在api.php还是web.php中呢?它是否取决于请求是否通过AJAX调用?

另外,我不知道在什么情况下应该使用api中间件和web中间件 默认情况下,web.php 使用web 中间件,而api.php使用api 中间件

在我们已经登录并且想要进行 AJAX 调用的情况下,我们是否必须将该路由放在api.phpweb.php中。

我们是否仅在使用基于令牌的身份验证登录时才使用api中间件?

4

1 回答 1

0

您可以使用相同的逻辑来解释两种类型的使用POSTPUT请求:

API 路由

API POST/PUT请求将创建/更新某些实体并返回 JSON 响应,例如为 新创建的模型POST或为PUT.

return response()->json($model);

这在您有 JavaScript 代码调用 AJAX 请求的情况下很有用。当您将数据发送到 API 端点时,您应该会收到一个状态200,其中包含您刚刚创建/更新的模型的 JSON 表示。然后你的 javascript 代码决定下一步做什么,比如关闭一个弹出窗口。

网络路由

一个 web POST/PUT请求也会创建/更新一些实体,但通常会返回一个重定向到一个新页面:

session()->flash('alert', 'Model X has been updated!');
return redirect()->to('someurl');
// or
return redirect()->route('my.route.name');

POST/使用简单的形式调用PUT您的路线。Javascript 在这里被排除在外,因此表单提交会将您的表单数据发送到给定的端点,并将响应直接返回到您的浏览器(可能是名为 的视图)。web.php<form action="..." method="POST'>my.route.name

于 2020-05-22T11:50:15.903 回答