使用 REST 原则和 HTTP 标头,我想告诉我的客户我的响应是只读的。我的内容类型是文本/纯文本。我的一些响应是只读的,而另一些则不是,我的客户在执行 PUT 并且出错之前无法区分,这会导致糟糕的用户体验。
我是否需要将我的 Content-Type 设置为 text/vnd.read-only 或 application/octet-string?
使用 REST 原则和 HTTP 标头,我想告诉我的客户我的响应是只读的。我的内容类型是文本/纯文本。我的一些响应是只读的,而另一些则不是,我的客户在执行 PUT 并且出错之前无法区分,这会导致糟糕的用户体验。
我是否需要将我的 Content-Type 设置为 text/vnd.read-only 或 application/octet-string?
通常,客户端会向资源发出 HTTP OPTIONS 请求。如果 PUT 列在“允许”标题中,则可以修改资源。
如果存在 application/JSON 的 Content-Type 响应,则可以将一个字段添加到 JSON 元数据,将有效负载标记为只读。
我认为没有专门的 HTTP 标头。
也就是说,我看到在您的回复中提供此提示的两种可能性:
在您的响应中添加一个自定义标头,告诉最终用户该内容是只读的。像这样的东西:
GET http://...
(...)
Content-type: application/json
x-readonly: true
{
(...)
}
您还可以在 header 中添加一个参数Content-Type
。有关此标头的格式,请参阅此链接http://www.ietf.org/rfc/rfc1521.txt(第 9 页)。您可以看到您可以在其中添加参数。这不会破坏 REST 库和框架对其的处理。所以你可以有这样的东西:
GET http://...
(...)
Content-type: application/json; readonly=true
{
(...)
}
希望它可以帮助你,蒂埃里
也许你可以使用状态码来解决这个问题? http://en.wikipedia.org/wiki/List_of_HTTP_status_codes