我想在.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)雅。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式