场景是用户本质上是在填写多步骤表单,我们希望将每个步骤保存在cookie中,以防用户失去连接,这样他们的数据就不会在表单步骤之间丢失。
我们还需要将该cookie发送回服务器进行验证,并将任何新数据保存在其中。
目前,服务器正在运行用 Laravel 编写的 restful API,我的理解是 cookie 无法通过 rest API 发送到客户端?
有没有办法通过用 Vue 编写的 SPA 前端来实现这一点,或者我最好只是编写服务器渲染的视图并远离 API 解决方案?
您绝对可以将cookie 与 REST API 一起使用。Cookie本质上只是HTTP标头,您可以通过SPA和REST API完全控制它们。虽然,我强烈建议使用localStorage或sessionStorage,而不是在cookie中处理这种状态。
至于在服务器端保存/验证数据,通常您只需对其中一个 RESTful API 端点执行 HTTP POST。饼干没有理由参与其中。
根据您的多步骤表单在后端的建模方式,让第一步创建初始表单(HTTP POST)
后续步骤将更新该表单(HTTP PUT
(可能是有意义的。如果您需要获取最新保存的表单数据,客户端(您的SPA(可以调用(HTTP GET
(端点。
下面是如何构建终结点的一般示例:
- GET: /api/special-forms/{id} (Returns a the form for the given ID)
- POST: /api/special-forms/ (Creates a new form)
- PUT: /api/special-forms/{id} (Updates the form matching the given ID)