欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)

程序员文章站 2022-06-22 11:09:06
在上面几篇文章的学习之后,组织管理的新增功能的前端与后台功能基本实现了我们所要。今天开始我们要通过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结合增删改查之五(三十一)
 
 

     在上面几篇文章的学习之后,组织管理的新增功能的前端与后台功能基本实现了我们所要。今天开始我们要通过webapi来替换控制器中的操作方法。在学习webapi之前,我先来介绍一下swagger这个组件。

 

十三、swagger管理webapi

        swagger兼具了api文档管理和测试的功能,而且保证了代码和文档的一致性。它提供了无需任何实现逻辑的restfulapi的ui表示。它允许用户在没有任何代码访问的情况下了解服务的功能,并减少创建服务文档的时间。

   swagger使用swagger工具基于我们编写的服务代码生成的swagger.json文件来生成文档管理界面。此文件描述服务的功能,即服务支持多少方法,并提供有关方法参数的信息。使用这个文件,swaggerui生成客户机代码下面我们通过调用新增组织信息的webapi接口不成功为示例来学习一下abp中的swagger使用。

      1.在“添加组织信息”界面中输入相应的组织信息之后,点击“保存”按钮 。在弹出的确认对话框中点击“确定”按钮。在弹出的“保存成功”确认对话框中点击“确定”按钮。

 abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)

      2.如果保存界面一直是正在保存界面。见下图。首先我们去启动“abp.tplms.web.host”项目,通过swagger来看看我们的webapi是否可用。

 abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)

      3.我们把“abp.tplms.web.host”项目设为启动项目,然后在visual studio 2017中按f5启动swagger应用程序。生成并浏览webapi,但是swagger并没有生成webapi,只是给了一个错误信息。如下图。

 abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)

      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”方法。如下图。

abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)

      7. visual studio 2017的“解决方案资源管理器”中,找到“abp.tplms.application”项目中的“cargos”目录,找到cargoappservice.cs文件,把“delete”方法改为“deletebatch”方法。如下图。

 abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)

     8. visual studio 2017的“解决方案资源管理器”中,找到“abp.tplms.web.mvc”项目中的“controller”目录,找到cargocontroller.cs文件,把“delete”方法中原来调用“delete”方法,改为调用“deletebatch”方法。如下图。

 abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)

      9. visual studio 2017的解决方案资源管理器中,把“abp.tplms.web.host”项目设为启动项目,然后按f5运行。结果如下图。正如图中所示,它对每个http动词使用不同的颜色代码。

 abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)

 

   10. 当我们单击任何操作方法时,swagger会显示这个方法所需要的参数和测试按钮。如下图。

abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)

     11. 当我们单击“try it out”按钮时,它将询问参数详细信息。我们在参数中填写参数值,然后点击“execute”按钮,它将向web api发送请求。如下图。

 abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)

    12. org的webapi方法get,返回结果如下图。测试正常。

 abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)