0

采取以下场景:

我想通过 REST PUT 调用更新汽车对象上的制造商字段。应该发送的数据如下所示:

{
  "Id": "1000000251"
  "Manufacturer": "Honda"
}

这里的关键是制造商字段的值来自存储在数据库中的一组选项列表。我还为客户提供了一个单独的 GET 调用,让他们可以检索有效制造商的列表。如果用户提供值“Honnnda”,我将返回验证错误。

在数据库中,我有以下选择要查找:

1 Honda
2 Toyota
3 Ford

是否最好强制他们知道我们每个人的内部唯一 ID(更安全),从而在我的 JSON 对象中包含 ManufacturerId 字段,或者我可以允许他们通过文本值更新该字段?我将在这两种情况下验证输入。此外,在发送 PUT 请求之前,他们将被要求获取可用制造商的列表。

编辑 - 用户需要在进行 PUT 调用之前获取可用制造商的列表,因为他们需要提前知道他们可以做出的有效选择是什么。我用汽车作为一个“更具体”的例子,但我的系统实际上并不处理汽车。

4

1 回答 1

1

REST 并没有真正谈论这个主题。但是,通常 REST 确实更喜欢您使用 URI 作为标识符,因此有人可能会争辩说您应该发送..

{
  "Id": "1000000251"
  "Manufacturer": "http://myapi.com/manufacturers/1"
}

我不相信这是必要的。REST 社区中有一部分人认为在表示中使用标识符使表示不是self-descriptive因为标识符的含义可能会在用户代理获取标识符和使用标识符之间发生变化。就个人而言,我也不买那个。

我会说,不要出汗。做最适合您的方案的任何事情。

于 2013-03-25T14:54:45.060 回答