2016-10-11 9 views
1

モデルのサイズ(およびそれぞれのテーブル)がきれいなWeb APIプロジェクト(Restful)に取り組んでいます巨大なので、部分的な更新が絶対必要です。Restful Web API(.NET/JSON/EF6)で部分更新(PATCH)を実装する方法サーバー側

私はモデルのサブセクションにPOSTのオプションを見直しましたが、モデルには膨大な量のフィールド(およびカスタムフィールド)があるので、その多くのURIを公開することは現実的ではないと考えてください。

私はクライアントに部分的な更新を許可することができますが、私はサーバ側で同じものをキャプチャして、何が変更されたのかを見極める必要があると考えています。私はどのフィールドが明示的にクライアントによってNULLに設定されているかを区別することができます(彼女がフィールドを更新したかったので)。更新されていないためにNULLが返されます。

カスタムマッパーを使用する必要がありますか?または、汎用プロパティを作成し、フィールドレベルで状態を取得する必要がありますか?

私はSOF.comでネットを検索しましたが(まだやっていますが)、私が見つけた権威/具体的なものはありません。

お手数ですが、

答えて

0

KevinDockxは、PATCHを処理するMVCにプラグインを作成しました。ここnugetリンクはあなたのクライアントからJSONパッチを送信するとき

は基本的にあなたはもちろん

[ 
    { "op": "add", "path": "/foo", "value": "bar"}, 
    { "op": "replace", "path": "/baz", "value": "boo" } 
] 

にそれを操作の配列を構築する必要が...このプラグインは、.NETのためのRFC 6902実装ですhttps://www.nuget.org/packages/Marvin.JsonPatch/

ですあなたが仕様に従うことを望む場合にのみ重要です。他の場合(私はPATCHがどのように動作するかあなた自身の理解を意味する)、カスタムロジックを実装する必要があります。

EDITは個人的に私は唯一の「置き換え」操作が原因で、私のDTOのフラットな性質の私のユースケースに有用であることがわかりました。

関連する問題