0x00 起因
最近需要一個在線編輯器,之前聽人說過百度的UEditor不錯,去官網(wǎng)下了一個。不過服務(wù)端只有ASP.NET版的,如果是為了能盡快使用,只要把ASP.NET版的服務(wù)端作為應(yīng)用部署在IIS上就可以立即使用了。不過我的需求并不急,所以把ASP.NET移植到了ASP.NET Core上。整個過程很簡單,只是重新引用了一些包,修改了幾處代碼,另外就是把Controller中比較長的一個switch語句塊重構(gòu)為了字典,根據(jù)url中的action參數(shù)從字典中找出并調(diào)用相應(yīng)的Action處理,這樣的好處就是如果要擴展action支持的操作無需修改源代碼,只要擴展字典就可以,對擴展開放,對修改關(guān)閉。最后把服務(wù)端功能打成了nuget包UEditorNetCore,方便使用。這篇博客主要就介紹下如何使用UEditorNetCore快速實現(xiàn)UEditor服務(wù)端,也可以直接使用源代碼中的示例,希望對有這方面需求的園友有所幫助。
0x01 總體設(shè)計
當接收到action后,UEditorService會從UEditorActionCollection中找到這個action對應(yīng)的方法并調(diào)用,同時傳入HttpContext參數(shù)。這些方法調(diào)用基層的服務(wù)XxxxHandler完成功能,并把返回內(nèi)容通過HttpContext.Response.WriteAsync()方法寫入。如果要擴展對action的支持,可以擴展UEditorActionCollection,具體方法后面有介紹。
0x02 如何使用UEditorNetCore
1.安裝UEditorNetCore
Install-Package UEditorNetCore