C# ABP WebApi與Swagger UI的集成

本文是配置WebApi與Swagger UI,能夠參照 http://www.cnblogs.com/farb/p/ABPSwaggerUIIntegration.htmlhtml

 

1. 安裝swagger nuget包web

首先,將Swagger安裝到WebApi項目中。咱們安裝到WebApi類庫中,包爲 Install-Package Swashbuckle.Core,以下:api

image

 

2. 配置 WebApiModuleapp

咱們打開WebApi類庫下面的WebApiModule類,由於咱們的項目叫MyThirdABP,因此類叫MyThirdABPWebApiModule。ide

首先,在類裏面加入方法:ui

        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的方法。spa

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

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

 

代碼已經完畢,可是咱們要注意的一點,咱們看到ConfigureSwaggerUi方法裏面,commentsFileName變量是指定路徑的。因此咱們要在路徑下面作一些配置。code

選中Web項目,而後右鍵屬性—>生成—>輸出—>勾選 XML文檔文件,而且把內容複製到commentsFileName變量中。htm

image

 

3. 運行Swaggerblog

首先,咱們將web設爲啓動項目。在路徑後面加入 /swagger/ui/index,以下:

image

 

到此,啓動成功。

 

能夠關注本人的公衆號,多年經驗的原創文章共享給你們。