在Abp中集成Swagger UI功能


在Abp中集成Swagger UI功能

1.安裝Swashbuckle.Core包

通過NuGet將Swashbuckle.Core包安裝到WebApi項目(或Web項目)中。

2.為WebApi方法添加注釋,並生成xml

  • 在xxx.Application項目的接口聲明文件中為各接口方法添加注釋,如下圖:
  • 編輯xxx.Application項目屬性,設定在輸出時生成XML文檔文件

3.在xxx.WebApi項目中配置Swagger

修改xxxWebApiModule類,添加ConfigureSwaggerUi()方法,並在Initialize()方法的最后調用它。
注意:要添加對Abp.Configuration.Startup、Swashbuckle.Application命名空間的引用。
另外,不調用ResolveConflictingActions()方法來提供沖突解決辦法將有可能遇到500錯誤。

using System.Linq;
using Abp.Configuration.Startup;
using Swashbuckle.Application;

    [DependsOn(typeof(AbpWebApiModule), typeof(OrganizationApplicationModule))]
    public class OrganizationWebApiModule : AbpModule
    {
        public override void Initialize()
        {
            IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());

            DynamicApiControllerBuilder
                .ForAll<IApplicationService>(typeof(OrganizationApplicationModule).Assembly, "csci")
                .Build();

            //配置跨域
            GlobalConfiguration.Configuration.EnableCors(new System.Web.Http.Cors.EnableCorsAttribute("*", "*", "*"));
            //配置輸出json時不使用駱駝式命名法,按對象屬性原名輸出
            GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
            //集成Swagger UI
            ConfigureSwaggerUi();
        }

        private void ConfigureSwaggerUi()
        {
            var xmlFile = string.Format("{0}/bin/{1}.Application.xml", System.AppDomain.CurrentDomain.BaseDirectory, this.GetType().Namespace);
            Configuration.Modules.AbpWebApi().HttpConfiguration
                .EnableSwagger(c =>
       ![](http://images2015.cnblogs.com/blog/19184/201706/19184-20170613111141275-1740289580.png)

         {
                    c.SingleApiVersion("v1", this.GetType().Namespace);
                    c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
                    if (System.IO.File.Exists(xmlFile)) { c.IncludeXmlComments(xmlFile); }
                })
                .EnableSwaggerUi();
        }

    }

4.測試

運行WEB項目,在瀏覽器中訪問{項目網址}/swagger,即可見到動態生成的WebApi接口,並可以直接調試。

注:如果見不到[Try it out!]按鈕,點一下"Expand Operations"鏈接即可。

參考:
ABP理論學習之Swagger UI集成
.net WebApi中使用swagger


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM