项目之前开发完接口后,我们还需要写接口说明文档,现在有了swagger方便了很多,可以网页版直接测试,当然了也减少了我们的工作量。

  使用swagger生成接口说明文档,大致需要2个步骤

  1、从“管理 NuGet 程序包”对话框中:

    • 右键单击“解决方案资源管理器” > “管理 NuGet 包”中的项目
    • 将“包源”设置为“nuget.org”
    • 在搜索框中输入“Swashbuckle.AspNetCore”
    • 从“浏览”选项卡中选择“Swashbuckle.AspNetCore”包,然后单击“安装”

  2、添加并配置 Swagger 中间件

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" }); });
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
} //启用静态文件中间件
app.UseStaticFiles();
// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger(); // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseHttpsRedirection();
app.UseMvc();
}

  经过上面的2步,我们的接口说明文档就生成好啦,运行项目,输入https://localhost:**/swagger/index.html地址,效果如下:  细心的童鞋可能发现,没有接口说明注释,我们稍做修改就可以显示注释,步骤如下:

            services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
var xmlPath = Path.Combine(AppContext.BaseDirectory, "OfficalProject.xml");
c.IncludeXmlComments(xmlPath);

}); //启用静态文件中间件
app.UseStaticFiles();
// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger(c => { c.RouteTemplate = "swagger/{documentName}/swagger.json"; });
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
// c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.SwaggerEndpoint("v1/swagger.json", "SwaggerTest");
//c.SwaggerEndpoint("/swagger/v2/swagger.json", "My API V2");
});

  上面红色字体的就是修改的部分,下面我们的文档就有注释啦

  

  重要!  重要!  重要!

  我们如在实际使用中,如遇到接口文档不能正常显示问题,可以调用这个地址进行排错https://localhost:***/swagger/v1/swagger.json

    实际应用中,某些接口我们想不在外面显示,只需在控制器上面加上 [ApiExplorerSettings(IgnoreApi =true)]

    [ApiExplorerSettings(IgnoreApi =true)] //设置该控制器不在swagger文档中显示
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
}

最新文章

  1. meizu mx4 usb调试
  2. 纯js写验证码
  3. How to adjust OOM score for a process?
  4. powerdesigner 15 如何导出sql schema
  5. POJ2402+模拟
  6. MySQL DBA成长之路
  7. node.js 中回调函数callback(转载),说的很清楚,看一遍就理解了
  8. Zookeeper实现master选举
  9. python中线程和进程(二)
  10. ORA-01578 data block corrupted 数据文件损坏 与 修复 (多为借鉴 linux)
  11. APIPA
  12. PhpStorm本地断点调试
  13. php编程 之 php基础三
  14. 【PMP】项目整合管理
  15. Spring Boot 简单小Demo 转载!!!
  16. RouterOS 5.16软路由安装图解教程
  17. HTML常用标签及约束
  18. 粒子群优化算法PSO及matlab实现
  19. JDK1.8 之Lambda
  20. Spark 1.5新特性介绍

热门文章

  1. thinkphp实现数据分页
  2. python爬虫入门(六) Scrapy框架之原理介绍
  3. EF Core Model更新迁移
  4. List数组和集合相互转换
  5. SpringMVC表当重复提交
  6. width和max-width的用处
  7. jQuery学习之旅 Item10 ajax快餐
  8. eclipse下搭建hibernate5.0环境
  9. MySQL数据库创建表报错的解决方案
  10. 为什么说JAVA中要慎重使用继承