1. 首页>
  2. 技术文章>
  3. Asp.net core WebApi 使用Swagger生成帮助页

Asp.net core WebApi 使用Swagger生成帮助页

7/9/18 10:21:48 PM 浏览 1455 评论 0

asp.net core webapi swagger

注:部分内容有更改

最近我们团队一直进行.net core的转型,web开发向着前后端分离的技术架构演进,我们后台主要是采用了asp.net core webapi来进行开发,开始每次调试以及与前端人员的沟通上都存在这效率低下的问题,一次在看微软asp.net core官方文档的时候,发现了swagger这个好东西。然后在实际的项目中引入了该技术。我们开发人员测试自己写的api的过程大大得到了简化,前端人员也可以根据我们提供的swagger help pages 自己进行一些前端代码的测试,大大提高了前后端的开发效率。下面我就拿我自己的真实上线项目来一步一步的讲解如何在asp.net core webapi中引入swagger。(也可以参照微软官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/web-api-help-pages-using-swagger) 

1、打开NuGet包程序管理界面,输入:Swashbuckle.AspNetCore,点击安装。

2、打开Startup.cs 文件,在ConfigureServices 方法中,添加如下代码:

services.AddSwaggerGen(c =>
{
                c.SwaggerDoc("v1", new Info
                {
                    Version = "v1",
                    Title = "MyCore接口文档"
                });
                //Set the comments path for the swagger json and ui.
                var basePath = PlatformServices.Default.Application.ApplicationBasePath;
                var xmlWebApiPath = Path.Combine(basePath, "MyCore.WebApi.xml");
                var xmlModelPath = Path.Combine(basePath, "MyCore.Domain.xml");
                c.IncludeXmlComments(xmlWebApiPath);
                c.IncludeXmlComments(xmlModelPath);
                //  c.OperationFilter<HttpHeaderOperation>(); // 添加httpHeader参数
});

Mycore.WebApi.xml和MyCore.Domain.xml需要通过点击项目属性 > 输出 > XML文档文件。另外在项目属性中,禁止显示警告中,添加1591 代码,可以过滤掉一些类名没有写注释的报警信息。

最后需要在Configure方法中,添加如下代码,注意下面的代码必须添加在  app.UseMvc() 前面:

app.UseSwagger();
app.UseSwaggerUI(c =>
{
     c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyCore API V1");
});

打开 launchSettings.json 文件,把webapi项目的启动路径设置成 swagger。这样每次调试运行项目都会自动跳转到swagger帮助页面

网友讨论