api - 如何在 REST 中建模类似向导的顺序过程?

标签 api rest web

如何在 REST 中建模类似向导的顺序流程?

每个步骤都很长且异步,每个步骤都需要基于上一步结果的新客户端输入。我发现的大多数示例仅涉及向集合添加新元素,然后修改该元素,因此我不知道如何应用于我的案例。

如果我尝试对这个过程进行类比,它会是这样的:

客户提交神秘包裹

服务器慢慢解压

这是蛋糕!客户端输入要切多少片

 服务员慢慢切蛋糕

​​客户拿到切好的蛋糕

这是炸弹!客户端输入是剪绿线还是红线

【服务器解除炸弹缓慢

​​客户获得已解除武装的炸弹

拆包、切割、解除武装是具有单一输出的异步顺序单一 Action ,样本适用于集合中的多个元素,因此当我尝试对这些单一 Action 进行建模时感觉很奇怪......

谢谢。

最佳答案

How to model a wizard-like sequential process in REST?

与使用 HTML 表单建模类似向导的顺序流程的方式相同。

Each step is long and async, each step needs new client input based on results from previous step.

不会改变太多事情。

在 HTML 中,用户可以通过链接/书签访问表单。用户填写表格,然后点击“做汤”按钮。表单的内容通过 http 请求发送到服务器。服务器将该信息复制到域模型中,并发送回一堆 html,其中显示“这还不是汤;单击此处检查它是否是汤”。用户点击链接询问是否是汤。服务器发回另一个 html 响应,否认它是汤。最终,服务器通过承认它是汤来回答其中一个查询,这是您需要的下一个表单。如此不断地进行,直到协议(protocol)完成。

所以:你告诉服务器你希望它打开一个神秘包裹。服务器将您重定向到进度报告。进度报告的表示是一个文件,告诉您要有耐心,并包含一个链接,告诉您如何获取进度报告的更新副本。如果神秘包最终被打开,进度报告的表示将更改为包含协议(protocol)中下一步的链接。

the samples apply to multiple elements in a collection so it feels weird when I try to model these singular actions...

Jim Webber

URIs do NOT map onto domain objects - that violates encapsulation. Work (ex: issuing commands to the domain model) is a side effect of managing resources.

Resources adapt your domain model for the web

关于api - 如何在 REST 中建模类似向导的顺序过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38090047/

相关文章:

Java:发送 POST HTTP 请求以将文件上传到 MediaFire REST API

php - 根据另一个 SQL 查询的结果执行查询

C++ winapi 和 gtk 包装器 (gui)

git - 如何有效地将用户添加到 GitLab 中的所有项目(以编程方式或其他方式)

api - YouTube框架API-视频从一开始就无法播放(IE + Chrome问题)

javascript - "JavaScript APIs"是什么意思?

rest - 如果我有一个 Restful API 的基本 URL,有没有办法确定它提供哪些资源?

c# - 使用资源管理器部署和rest api获取Azure VM

authentication - 验证用户的网站登录私钥

javascript - 在按钮事件上加载 javascript 函数