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