我想在.NET4.6 Web API 2 項目中使用Patch更新一個大對象中的某個字斷,這才意識到我以前都沒有用過Patch。這是一次難得的學習機會。
我不知道在Web API 2中最好的實現(xiàn)方式是什么,所以我按照慣例,用google搜索"Patch Web API"。我得到的第一條結果是Michael McKenna’s “How to Add JSON Patch Support to Web API”??雌饋碇灰兆鼍托辛耍俏蚁胫罏槭裁此欢ㄒ獮榇藢憘€解決方案。毫無疑問地,在Web API中Patch是一個非常常見的需求,難道.NET就沒有一個原生的方式實現(xiàn)它嗎?也許Michael也不知道。
經(jīng)過一番探索之后,在幾乎所有的論壇和博客中都無外乎如下三種方法,卻沒有一個是我喜歡的。
1. 為每個屬性寫一個api
有人建議為每個修改寫個方法,例如設置“Book.Name”,設置“Book.PageCount”等等。毫無疑問地,這種方式實現(xiàn)起來非?;〞r間,并且也不好維護,特別是當對象中有很多屬性或者有很多對象的時候,簡直就是天坑:(。
2. 使用ODATA
很多人建議在項目中包含.NET ODATA類庫,只用它的Delta類來實現(xiàn)Patch請求。這看起來有點怪怪的。ODATA和簡潔的JSON API比起來是一個完全不同的大家伙。我趕腳ODATA有點笨重,不直觀,不優(yōu)雅。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26