采取以下方案:REST从数据库中更新具有查找值的字段
我想通过REST PUT调用更新汽车对象上的制造商字段。应该发送的数据如下所示:
{
"Id": "1000000251"
"Manufacturer": "Honda"
}
此处的关键在于制造商字段的值来自存储在数据库中的选择集列表。我还向客户提供了一个单独的GET调用,可以让他们检索有效的制造商列表。如果用户提供值“Honnnda”,我会返回一个验证错误。
在数据库中,我有以下选择要查找:
1 Honda
2 Toyota
3 Ford
是它倾向于迫使他们知道我们的内部唯一的ID对每个人(更安全),因此包括ManufacturerId字段在我的JSON对象上,还是我可以让他们通过文本值更新字段?我将在两种情况下验证输入。此外,在发送PUT请求之前,无论如何,他们都将被要求获得可用制造商的列表。
编辑 - 用户在进行PUT调用之前需要获得可用制造商的列表,因为他们需要提前知道他们可以做出哪些有效的选择。我用汽车作为“更有形”的例子,但我的系统实际上并不涉及汽车。
请注意,HTTP不允许您使用PUT更新较大表示的单个属性。您必须更新整个表示。 – 2013-03-25 14:45:29
是的,那绝对没问题。为了简洁起见,我只使用了对象的删节版本来隔离我的问题。这并不影响我所要求的。 :) – 2013-03-25 14:46:14
那么,只要你可以控制你的API端代码,那真的没关系。然而,作为一个用户,发送“本田”比“42”更方便我猜...你能详细说明为什么用户需要获得“可用制造商无论”列表吗? – 2013-03-25 14:52:26