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

时间:2016-06-29 03:48:35

标签: api rest web

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

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

如果我试着对这个过程进行类比,那就是这样的:

客户提交神秘套餐

服务器慢慢解压缩

这是蛋糕!客户端输入要切割的切片数

服务器慢慢切蛋糕

客户获得切片蛋糕

这是炸弹!客户输入是否切割绿线或红线

服务器缓慢撤防炸弹

客户获得解除武装的炸弹

拆包,切割,撤防是异步序列奇异动作与单数输出,样本适用于集合中的多个元素,所以当我尝试模拟这些奇异的动作时感觉很奇怪......

感谢。

1 个答案:

答案 0 :(得分:2)

  

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

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

  

每个步骤都很长且异步,每个步骤都需要根据上一步的结果进行新的客户输入。

不会改变很多事情。

在HTML中,用户会关注表单的链接/书签。用户将填写表格,然后点击" Make Soup"按钮。表单的内容在http请求中发送到服务器。服务器将这些信息复制到域模型中,然后发送一堆html,说“#34;它还没有汤;点击这里检查是否是汤。"用户点击链接询问是否是汤。服务器发回另一个html响应,否认它是汤。最终,服务器通过承认它汤来回答其中一个查询,这里是您需要的下一个表单。然后继续,直到协议完成。

所以:你告诉服务器你想要它打开一个神秘包。服务器会将您重定向到进度报告。进度报告的表示是一个告诉您耐心的文档,并包含一个链接,告诉您如何获取进度报告的更新副本。如果最终打开了神秘包,则进度报告的表示将更改为包含指向协议下一步的链接。

  

示例适用于集合中的多个元素,因此当我尝试对这些单一动作建模时感觉很奇怪......

Jim Webber

  

URI不会映射到域对象 - 这违反了封装。工作(例如:向域模型发出命令)是管理资源的副作用。

     

资源调整您的网络域模型