現在、リソースと有効なエントリの2つの異なるサブリソースを持つリソースを表すREST APIがあります。以前はこの構造は変更できませんでした。エラーが発生した場合はエラーが発生し、有効なエントリがあれば有効なエントリとして残ります。 JSON出力の例を次に示します。サブリソースの状態を変更するためのRESTメソッド
GET /resource/1
{
"resourceId" : 1,
"errors" : [
{ "id": 1, "errorDetails" : "it isn't right" }
],
"validData" : [
{ "id": 1, "message" : "it's good!" }
]
}
エラーを訂正して有効にするための要件が発生しています。だから、本質的に操作した後の結果は、補正処理がエラーを修正していないは、a)指定されたパラメータなどの新しいエラーエントリを作成し、いくつかの余分なパラメータを取るだろう
GET /resource/1
{
"resourceId" : 1,
"errors" : [],
"validData" : [
{ "id": 1, "message" : "it's good!" },
{ "id": 2, "message" : "Corrected, old data was : it isn't right" }
]
}
であるか、またはb)は、新規に作成しますエラーが修正されたので有効な入力。
RESTの観点から、これを表現する最良の方法は何ですか? は、これまでのところ私は、次のアイデアを持っている:
- は、パラメータを持つPUT/DELETEエラーにすなわちPUT /リソース/ 1 /エラー/ 1を持っています。これにより、/ resources/1/errorsまたは/ resources/1/validDateの下に新しいサブリソースが作成されます。
- PUT/resource/1にはPUTがあります。一方の側から他方の側へ移動することによって全体としてリソースを変更する
オプション1で表示される問題は、「エラー」リソースを編集して、別の「エラー」または「validData」リソースを作成する可能性があることです。したがって、 'エラー'への投稿は、あなたがリソースの他の部分を変更していることを反映していません。 – ahjmorton
私はあなたが正しいと思っていますが、それが何であれ、あなた自身が「リソース」自体を修正しているかもしれません。リソースを修正している場合は、リソース自体に 'POST 'します。しかし、この場合、エラーを参照する必要はありません。なぜなら、それらは再度計算されるからです。いずれの場合も、複数の新しいエントリが生成される可能性があります。これは、 'POST'に対して明示的に許可されています。 –