abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之七(三十三)
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實現倉儲管理系統——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,返回結果,如下圖。測試正常。