本文是配置WebApi与Swagger UI,可以参照 http://www.cnblogs.com/farb/p/ABPSwaggerUIIntegration.html
1. 安装swagger nuget包
首先,将Swagger安装到WebApi项目中。我们安装到WebApi类库中,包为 Install-Package Swashbuckle.Core,如下:
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变量中。
3. 运行Swagger
首先,我们将web设为启动项目。在路径后面加入 /swagger/ui/index,如下:
到此,启动成功。
可以关注本人的公众号,多年经验的原创文章共享给大家。
alunchen