面向任务的用户界面和 Rest 应用服务器 API

Rog*_*sem 5 architecture api task

我正在设计一个系统,其中的用户界面将使用面向任务的 UI 和 CRUD UI 的混合构造。通过这种方式,我们希望能够为不同的用户角色提供最佳的用户体验。

客户端应用程序使用 REST/JSON 与应用程序服务器进行通信。

对于 CRUD 部分,REST API 部分大多是直截了当的。但是在我们的应用程序中为面向任务的操作设计 API 有点困难。

如何设计一个 REST API 来区分对资源的两种不同操作,而这两种操作实际上都只是更新数据?

例如 - 用户可以出于以下原因更改某人的地址:

  1. 地址包含错误,例如街道名称拼写错误。
  2. 此人已搬到其他地址

这两个原因导致相同的最终情况;数据发生了变化。但是在 REST API 中,应该以某种方式有所不同,以便能够做出不同的反应。

Adr*_*n K 0

如果您需要有不同的“更新”方法,那么我只需在名称中包含一些描述性内容(例如:)/Address/UpdateStreetName。您可以包含“/Update”方法,但要针对可能开始看起来有点模糊的更具体的名称。

另外,API 是否以数据或潜在用户场景为中心?就我个人而言,我会根据数据构建 API,但要确保它涵盖所有可能的场景。例如,单独更新街道名称可能有意义(因为它可能会拼写错误),但这是否自动意味着您希望单独提供每个其他字段的更新能力?也许,也许不是。

可以肯定的是 - 一个好的 API 将允许用户有效地工作并覆盖所有/大多数场景 (%80 >),而不会产生不必要的麻烦,但是通过采用以数据为中心的方法作为粗略指南,您将不太可能重复不必要的。例如,更改地址会有多种原因(并非所有原因在设计时都已知),移动到不同的地址只是其中之一 - 但总体影响是相同的(因为正在更改相同的数据)。