C# ABP WebApi與Swagger UI的集成


本文是配置WebApi與Swagger UI,可以參照 http://www.cnblogs.com/farb/p/ABPSwaggerUIIntegration.html

 

1. 安裝swagger nuget包

首先,將Swagger安裝到WebApi項目中。我們安裝到WebApi類庫中,包為 Install-Package Swashbuckle.Core,如下:

image

 

2. 配置 WebApiModule

我們打開WebApi類庫下面的WebApiModule類,因為我們的項目叫MyThirdABP,所以類叫MyThirdABPWebApiModule。

首先,在類里面加入方法:

        public override void PreInitialize()
        {
            Configuration.Modules.AbpWeb().AntiForgery.IsEnabled = false;
            base.PreInitialize();
        }
        private void ConfigureSwaggerUi()
        {
            Configuration.Modules.AbpWebApi().HttpConfiguration
            .EnableSwagger(c =>
            {
                c.SingleApiVersion("v1", "SwaggerIntegrationDemo.WebApi");
                c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
                //將application層中的注釋添加到SwaggerUI中
                var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;

                var commentsFileName = "bin\\MyThirdABP.Web.XML";
                var commentsFile = Path.Combine(baseDirectory, commentsFileName);
                //將注釋的XML文檔添加到SwaggerUI中
                c.IncludeXmlComments(commentsFile);
            })
            .EnableSwaggerUi();
        }

然后,在Initialize方法中,調用ConfigureSwaggerUi的方法。

        public override void Initialize()
        {
            IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());

            Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
                .ForAll<IApplicationService>(typeof(MyThirdABPApplicationModule).Assembly, "app")
                .Build();
            ConfigureSwaggerUi();
        }

 

代碼已經完畢,但是我們要注意的一點,我們看到ConfigureSwaggerUi方法里面,commentsFileName變量是指定路徑的。所以我們要在路徑下面做一些配置。

選中Web項目,然后右鍵屬性—>生成—>輸出—>勾選 XML文檔文件,並且把內容復制到commentsFileName變量中。

image

 

3. 運行Swagger

首先,我們將web設為啟動項目。在路徑后面加入 /swagger/ui/index,如下:

image

 

到此,啟動成功。

 

可以關注本人的公眾號,多年經驗的原創文章共享給大家。


免責聲明!

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



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