0

我有一个通过 REST 接口公开的模型。在此模型的生命周期中,某些字段将变为只读,而其他字段将保持可编辑状态。

我很高兴在服务器端处理这个问题(根据这个问题) - 我希望客户端发送所有数据,如果他们尝试更改只读字段,我将返回 HTTP 错误 409。

但是,客户端如何/应该如何发现一个字段是否是只读的以允许它禁用输入?

4

2 回答 2

0

好吧,您似乎需要一种方法让客户端不仅获取数据,还获取有关数据的数据,即元数据。如果主要数据通过 REST URL 与 /container/resourceid 一样可用,您可以将元数据想象为 /metadata/container/resourceid 或 /container/resourceid?format=meta

于 2012-10-27T16:56:19.507 回答
0

@吉米P

这是一个简单的例子:

*** Request ***
GET /resource/12 HTTP/1.1
Host: service.org

*** Response ***
HTTP/1.1 200 Ok
Content-Type: …
Content-Length: …
Link: </resource/12/edit-form>; rel="edit-form"; type="text/html"

[Entity Body Goes Here]

注意以下细节:

  • 链接头(参见 RFC:https ://www.rfc-editor.org/rfc/rfc5988 )
  • 链接的关系值“edit-form”(参见 RFC:https ://www.rfc-editor.org/rfc/rfc6861 )
  • 键入“text/html”,您可以在此处使用任何具有足够表达能力的媒体类型来指示需要提交哪些数据元素。

如果客户端可以识别链接头和“rel”属性的值,那么它就可以获取编辑资源并确定需要发回哪些字段。当然除了数据元素(即字段)“form”还可以表示提交URI、数据编码类型、HTTP方法等...

于 2012-10-27T17:13:08.750 回答