REST PUT方法的建议/有效请求负载是多少?

kev*_*ray 5 rest

我在不同的地方看到两种类型的例子.一个使用表单字段

curl -X PUT -d"phone = 123.456.7890"" http://127.0.0.1/services/rest/user/123 "

另一个使用XML内容,如(某些变体)

echo"<user> <id> 123 </ id> <phone> 123.456.7890 </ phone> </ user>"| curl -X PUT -d @ - " http://127.0.0.1/services/rest/user/ "

看起来使用表单字段具有简洁的优点,并且通过仅针对修改的字段清楚地识别客户端的意图,但是使得解决"更深层"元数据变得尴尬.

使用XML内容具有更完整的优点,但是确定客户端实际修改哪个字段的开销的缺点(假设它们通过小的修改发送回整个资源).

是否有最佳实践,甚至更常见的做法?

Kor*_*nel 0

在第二个示例中,URL 不引用特定资源,因此恕我直言,它不是 RESTful。

如果解决了这个问题,选择就归结为表单和 XML 编码。

如果您需要结构化且可扩展的数据,那么 XML 可能会很有用:

<phone type="work, mobile"><num>555-555</num><ext>123</ext></phone>
Run Code Online (Sandbox Code Playgroud)

但不是必需的:

phone=555-555&phone-ext=123&phone-type=work&phone-type=mobile
Run Code Online (Sandbox Code Playgroud)

许多 API 用户可能会弄​​错 XML 编码,难以掌握命名空间间接,因此表单编码可能更适合广大受众。