如何使用 REST API 和 HATEOAS 实现多步表单

How to implement multi-step form with REST API and HATEOAS

我想创建一个 REST API 并使用 HATEOAS 创建多步骤表单。每一步都是一个单独的端点,向 select 提供数据,在最后一步中,所有收集的数据都将存储在数据库中。有什么设计模式或最佳实践吗?

感谢您的回答。

我想到解决这个问题的想法是为编译的每个步骤设置不同的实体。也就是说,起点将有一个描述第一步的动作(可以是一个动作或 link,根据您使用的格式,提供或多或少的描述性字段列表),它将 return 一个新实体,其中包含另一个描述第二步的操作,依此类推,直到到达最后一步。

尽管如此,为了尊重 REST/HATEOAS 原则,我认为这将迫使您在服务器上为每个步骤保存实体(可能是短暂的,将在最后一步删除,并且“垃圾收集”由某些 cron 作业等避免部分编译使您的存储混乱),这可能非常笨重。可能有一些方法可以避免这种情况,但我不确定如何。

通常我会采用这种方法:

  • 每一步都是自己的形式。
  • 这些表单中的每一个都会提交给特定的端点。
  • 服务器存储中间步骤和returns 'next step form'。您可以将其存储在 Redis 等存储系统中。
  • 提交最后一个表单时,把中间步骤的所有数据都拿来提交。