gpt4 book ai didi

http - RESTful 服务应如何公开可变资源的只读属性?

转载 作者:可可西里 更新时间:2023-11-01 15:07:00 24 4
gpt4 key购买 nike

我正在为这个服务设计一个资源,它有一组可变属性和一组不可变属性(例如,status,它是由服务生成的,而不是客户端可能会生成的)改变)。

我需要在对资源的 GET 请求的响应中包含此内容,但我不确定如果有人随后使用 PUT 请求发送资源该怎么办。

强制调用者知道哪些属性是不可变的感觉是不对的,但默默地丢弃更新也感觉不正确。用更新的资源响应 PUT 请求可能会解决问题,但它并不完美,因为调用者不必对其请求和服务的响应进行差异来确定属性是否被接受.

对正确的前进方向有什么想法吗?

附言我看了How should I update a REST resource?但它与这个问题不同,它提倡过于冗长的 API 设计。

最佳答案

我建议遵循 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10 上的指南. HTTP 409 的定义包括以下内容:

1) 由于与资源的当前状态冲突,请求无法完成。

2) 响应正文应该包含足够的信息,以便用户识别冲突的来源。

因此,由于对不可变属性的更改是资源状态的问题,HTTP 409 似乎适用。

至于如何将问题传达给客户,指南似乎是在响应正文中包含详细信息。

您还可以在表示本身(在 GET 上)中传达属性的可变性。例如。

<MyObject>
<Foo>17</Foo>
<Bar readOnly="true">22</Bar>
....

关于http - RESTful 服务应如何公开可变资源的只读属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20533712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com