abp(net core)+easyui+efcore實現倉儲管理系統——建立應用服務(五)html
abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI前端頁面框架 (十八) 前端
在上面幾篇文章的學習以後,組織管理的新增功能的前端與後臺功能基本實現了咱們所要。今天開始咱們要經過WebAPI來替換控制器中的操做方法。在學習WebAPI以前,我先來介紹一下Swagger這個組件。json
Swagger兼具了API文檔管理和測試的功能,並且保證了代碼和文檔的一致性。它提供了無需任何實現邏輯的RESTfulAPI的UI表示。它容許用戶在沒有任何代碼訪問的狀況下了解服務的功能,並減小建立服務文檔的時間。api
Swagger使用swagger工具基於咱們編寫的服務代碼生成的swagger.json文件來生成文檔管理界面。此文件描述服務的功能,即服務支持多少方法,並提供有關方法參數的信息。使用這個文件,SwaggerUI生成客戶機代碼。下面咱們經過調用新增組織信息的WEBAPI接口不成功爲示例來學習一下ABP中的Swagger使用。app
1.在「添加組織信息」界面中輸入相應的組織信息以後,點擊「保存」按鈕 。在彈出的確認對話框中點擊「肯定」按鈕。在彈出的「保存成功」確認對話框中點擊「肯定」按鈕。框架
2.若是保存界面一直是正在保存界面。見下圖。首先咱們去啓動「ABP.TPLMS.Web.Host」項目,經過Swagger來看看咱們的WebAPI是否可用。工具
3.咱們把「ABP.TPLMS.WEB.Host」項目設爲啓動項目,而後在Visual Studio 2017中按F5啓動swagger應用程序。生成並瀏覽WEBAPI,可是swagger並無生成WEBAPI,只是給了一個錯誤信息。以下圖。post
4. 在Visual Studio 2017的「解決方案資源管理器」中,找到領域層「ABP.TPLMS.Web.Host」項目中的App_Data\Logs目錄下找到Logs.txt。在日誌文件中看到ABP寫入的錯誤信息。錯誤信息以下:學習
System.NotSupportedException: HTTP method "DELETE" & path "api/services/app/Cargo/Delete" overloaded by actions - ABP.TPLMS.Cargos.CargoAppService.Delete (ABP.TPLMS.Application),ABP.TPLMS.Cargos.CargoAppService.Delete (ABP.TPLMS.Application).測試
5.根據上面的錯誤信息,咱們發現因爲以前咱們在寫貨物信息頁面時的一個重載方法形成的。
6. 在Visual Studio 2017的「解決方案資源管理器」中,找到「ABP.TPLMS.Application」項目中的「Cargos」目錄,找到ICargoAppService.cs文件,把「Delete」方法改成「DeleteBatch」方法。以下圖。
7. 在Visual Studio 2017的「解決方案資源管理器」中,找到「ABP.TPLMS.Application」項目中的「Cargos」目錄,找到CargoAppService.cs文件,把「Delete」方法改成「DeleteBatch」方法。以下圖。
8. 在Visual Studio 2017的「解決方案資源管理器」中,找到「ABP.TPLMS.Web.Mvc」項目中的「Controller」目錄,找到CargoController.cs文件,把「Delete」方法中原來調用「Delete」方法,改成調用「DeleteBatch」方法。以下圖。
9. 在Visual Studio 2017的解決方案資源管理器中,把「ABP.TPLMS.Web.Host」項目設爲啓動項目,而後按F5運行。結果以下圖。正如圖中所示,它對每一個HTTP動詞使用不一樣的顏色代碼。
10. 當咱們單擊任何操做方法時,Swagger會顯示這個方法所須要的參數和測試按鈕。以下圖。
11. 當咱們單擊「Try It out」按鈕時,它將詢問參數詳細信息。咱們在參數中填寫參數值,而後點擊「Execute」按鈕,它將向Web API發送請求。以下圖。
12. Org的WebAPI方法Get,返回結果,以下圖。測試正常。