0

我正在构建一个以 API 为中心的 Web 应用程序。我们的前端将使用 API,在测试后我们的计划是向公众发布 API。

但是,我遇到了在普通 MVC 应用程序中非常简单的问题,但我似乎无法以 RESTful 方式解决它。

以这个例子为例:

  • 一家公司有多个办公地点指向一个特定的地址
  • 此地址可以由多个站点共享,因此公司与站点具有一对多关系,站点与地址具有多对一关系
  • 当您更新地址时,我想让用户确认他们要么想要更新 LOCATION(因此所有通过站点共享该位置的公司都将被更新),或者他们只是打错字并想要创建一个新的地点

我将如何以 RESTful 方式解决这个问题?

我可以做一个

  • 如果有其他公司在使用该位置,我首先会执行 GET
  • 然后我让用户选择执行 POST(创建新位置)或执行 PUT(更新位置)
    • 在 POST 的情况下,还要创建一个新站点,将新位置链接到公司。

另一个示例是,如果用户显示的单个表单将调用必须更新的几个不同的后端实体。

有什么例子或想法吗?

4

1 回答 1

1

在 REST 中,您可能将远程服务视为数据库。如果您知道如何在通用 MVC 工作流程中执行此操作,那么对于胖客户端应用程序也是如此。

您可能希望以“尝试默认行为,并在不可能时引起注意”的方式或“检查可能的情况然后提供可能性”的方式来处理它。这是你的应用程序,这是你的选择。

就个人而言,我会选择“尝试默认并在边缘条件发生时引发错误”。所以在这种情况下,假设(在客户端)没有其他公司具有相同的地址,并使用相应的端点(PUT)。如果服务器检测到可能的冲突,则返回一些错误。然后客户端将提示用户做什么,并使用选择的任何端点(POST 或 PUT,带有强制更新的标志)

于 2013-06-07T11:35:21.177 回答