在上面幾篇文章的學習之後,組織管理的新增功能的前端與後臺功能基本實現了我們所要。今天開始我們要通過WebAPI來替換控制器中的操作方法。在學習WebAPI之前,我先來介紹一下Swagger這個組件。 ...
abp(net core)+easyui+efcore實現倉儲管理系統目錄
abp(net core)+easyui+efcore實現倉儲管理系統——ABP總體介紹(一) abp(net core)+easyui+efcore實現倉儲管理系統——解決方案介紹(二) abp(net core)+easyui+efcore實現倉儲管理系統——領域層創建實體(三) abp(net core)+easyui+efcore實現倉儲管理系統——定義倉儲並實現 (四)abp(net core)+easyui+efcore實現倉儲管理系統——創建應用服務(五)
abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之控制器(六) abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之列表視圖(七) abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之增刪改視圖(八) abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之菜單與測試(九) abp(net core)+easyui+efcore實現倉儲管理系統——多語言(十) abp(net core)+easyui+efcore實現倉儲管理系統——使用 WEBAPI實現CURD (十一) abp(net core)+easyui+efcore實現倉儲管理系統——菜單-上 (十六)abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI前端頁面框架 (十八)
abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理一 (十九) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理六(二十四) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理七(二十五) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理八(二十六) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之一(二十七) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之二(二十八) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之三(二十九) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之四(三十) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之五(三十一) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之六(三十二)在上面幾篇文章的學習之後,組織管理的新增功能的前端與後臺功能基本實現了我們所要。今天開始我們要通過WebAPI來替換控制器中的操作方法。在學習WebAPI之前,我先來介紹一下Swagger這個組件。
十三、Swagger管理WEBAPI
Swagger兼具了API文檔管理和測試的功能,而且保證了代碼和文檔的一致性。它提供了無需任何實現邏輯的RESTfulAPI的UI表示。它允許用戶在沒有任何代碼訪問的情況下瞭解服務的功能,並減少創建服務文檔的時間。
Swagger使用swagger工具基於我們編寫的服務代碼生成的swagger.json文件來生成文檔管理界面。此文件描述服務的功能,即服務支持多少方法,並提供有關方法參數的信息。使用這個文件,SwaggerUI生成客戶機代碼。下麵我們通過調用新增組織信息的WEBAPI介面不成功為示例來學習一下ABP中的Swagger使用。
1.在“添加組織信息”界面中輸入相應的組織信息之後,點擊“保存”按鈕 。在彈出的確認對話框中點擊“確定”按鈕。在彈出的“保存成功”確認對話框中點擊“確定”按鈕。
2.如果保存界面一直是正在保存界面。見下圖。首先我們去啟動“ABP.TPLMS.Web.Host”項目,通過Swagger來看看我們的WebAPI是否可用。
3.我們把“ABP.TPLMS.WEB.Host”項目設為啟動項目,然後在Visual Studio 2017中按F5啟動swagger應用程式。生成並瀏覽WEBAPI,但是swagger並沒有生成WEBAPI,只是給了一個錯誤信息。如下圖。
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,返回結果,如下圖。測試正常。