• ABP框架使用 Swagger


    在最近的一个项目中用到了 ABP框架 http://aspnetboilerplate.com/ ,第一次接触到 Swagger https://swagger.io/ 以及前后端的完全分离

    在ABP官网下载下来的ABP框架结构【基于ASP.NET MVC5.x的】如图:

    ABP的EntityFramework 是Code First Mode的,所以在配置好相应的实体后,修改数据库连接字符串,选择执行Migration 后数据库创建的位置

      <connectionStrings>
        <add name="Default" connectionString="Server=.;Database=ABP_show_api_in_the_swagger; Trusted_Connection=True;" providerName="System.Data.SqlClient" />
      </connectionStrings>
    

    旧的Migration已经没有用了,全部删除掉,

    在程序包管理控制台中,做如下操作:
    默认项目一定要选择带有后缀EntityFramework的

    Add-Migration init
    Add-Migration init
    
    

    Add-migration 要输入两遍

    update-database
    
    

    在执行成功后相应的数据库就会创建在相应的地方

    在WebApi类库中,找到后缀为WebApiMoudle的类,添加ConfigureSwaggerUi方法

     private void ConfigureSwaggerUi()
    {
         Configuration.Modules.AbpWebApi().HttpConfiguration
           .EnableSwagger(c =>
           {
               c.SingleApiVersion("v1", "show all Api");
               c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
           }).EnableSwaggerUi();
    }
    
    

    之后在Initialize方法里追加代码

     var cors = new EnableCorsAttribute("*", "*", "*");
     GlobalConfiguration.Configuration.EnableCors(cors);
    
     Configuration.Modules.AbpWeb().AntiForgery.IsEnabled = false;
     ConfigureSwaggerUi();
    
    

    会发现缺少命名空间

    其中EnableCorsAttribute 位于System.Web.Http.Cors命名空间下,EnableSwagger 位于Swashbuckle.Core包中,用Nuget中引入相应的包
    都安装到 WebApi类库中

     Install-Package Swashbuckle
    
     Install-Package Microsoft.AspNet.Cors
    
     Install-Package Microsoft.AspNet.WebApi.Cors
    

    重新引入命名空间,可以看到问题没有了,重新编译运行项目,在网站URI根路径后键入 swagger/ui/index ,访问之,大功告成!

    可以看到所有的API【注意只有继承了IApplictionService接口的Interface中定义的方法才会被扫描并显示在这里】的名称、参数、都在这里面了,还可以直接验证好不好用哦~

  • 相关阅读:
    初步了解Ajax
    什么是applet
    FilterLog代码分析
    Async分析
    HttpServletRequest hrequest
    xml的定义用途
    企业级与应用级的区别
    未来规划
    黄金点游戏
    hashCode与eqauls
  • 原文地址:https://www.cnblogs.com/Mxy-cnblog/p/8819326.html
Copyright © 2020-2023  润新知