0

RESTインターフェースを介して公開しているモデルがあります。このモデルのライフサイクルの過程で、一部のフィールドは読み取り専用になり、他のフィールドは編集可能なままになります。

サーバー側でこれを処理することに満足しています(この質問のとおり)-クライアントがすべてのデータを送信することを期待し、読み取り専用フィールドを変更しようとするとHTTPエラー409を返します。

ただし、入力を無効にできるようにするために、フィールドが読み取り専用かどうかをクライアントがどのように検出できるか、または検出する必要がありますか?

4

2 に答える 2

0

クライアントがデータだけでなく、データに関するデータ、つまりメタデータを取得する方法が必要なようです。メインデータが/container/resourceidのようにRESTURLを介して利用できる場合、メタデータは/ metadata / container / resourceid、またはおそらく/ container / resourceid?format=metaとして利用できると想像できます。

于 2012-10-27T16:56:19.507 に答える
0

@JimmyP

簡単な例を次に示します。

*** 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」属性の値を認識できる場合、クライアントは編集リソースをフェッチして、どのフィールドを送り返す必要があるかを判断できます。もちろん、データ要素(つまりフィールド)の他に、「フォーム」は送信URI、データエンコーディングタイプ、HTTPメソッドなどを示す場合もあります。

于 2012-10-27T17:13:08.750 に答える