1 在webapi项目下安装swagger,包名 Swashbuckle.AspNetCore

2 在webapi的startup.cs文件中添加swagger服务

/// <summary>
/// 配置服务 注册服务
/// </summary>
/// <param name="services"></param>
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); #region Swagger
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info
{
Version = "v0.1.0",
Title = "学习Swagger",
Description = "框架说明文档",
TermsOfService = "None",
Contact = new Swashbuckle.AspNetCore.Swagger.Contact { Name = "Learn.Swagger", Email = "king@net.com", Url = "https://www.facai.com" }
});
//如果不加入以下两个xml 也是可以的 但是不会对api有中文说明,使用了一下两个xml 就需要对成员使用///注释
//本webapi的xml
var basePath = Microsoft.DotNet.PlatformAbstractions.ApplicationEnvironment.ApplicationBasePath;
var xmlPath = Path.Combine(basePath, "Learn.Swagger.xml");//这个就是刚刚配置的xml文件名
c.IncludeXmlComments(xmlPath, true);//默认的第二个参数是false,这个是controller的注释,记得修改 //如果不引用别的类库项目,那么以上就是一个webapi项目添加swagger服务的全部 //webapi引用model的xml
var xmlModelPath = Path.Combine(basePath, "Learn.Swagger.Model.xml");//这个就是Model层的xml文件名
c.IncludeXmlComments(xmlPath, true);//默认的第二个参数是false,这个是controller的注释,记得修改
c.IncludeXmlComments(xmlModelPath);
}); #endregion }

3 在中间件代码块中添加 Swagger中间件

 // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
/// <summary>
/// 配置中间件
/// </summary>
/// <param name="app"></param>
/// <param name="env"></param>
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage(); #region Swagger
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiHelp V1");
});
#endregion
} app.UseMvc();
}

4.要配合我们第二步中的xml,我们要对webapi项目做如下操作

右键webapi项目属性——生成——勾选 XML文档文件 如下图:

如果引用了类库项目 也要勾选类库项目的XML文档文件,然后被webapi项目引用。

5.让webapi启动调试自动展示swagger接口信息页面

上面4步完成后 要输入 localhost:接口/swagger 这个地址才能看到接口信息页面

为了默认启动时 localhost:接口 页面直接打开接口信息页面 可以在 launchSettings.json 页面进行配置

修改如下:

大功告成!

最新文章

  1. Android开发学习之路-EventBus使用
  2. Spring MVC学习笔记——引入静态文件
  3. maven工程模块化
  4. SQLPROMPT5.3对各种加密对象的解密测试
  5. .NET Core VS Code 环境配置
  6. Java HttpClient使用小结
  7. 安装XCode导致mac无法正常开机怎么办
  8. 项目 Web 的 NuGet 程序包还原失败: 找不到“1.0.0”版本的程序包“Microsoft.Net.Compilers”。。 0
  9. WITH+HInt MATERIALIZE 不见得有效
  10. linux中重定向的用法
  11. Sagit.Framework For IOS 开发框架入门教程6:网络请求STHttp
  12. 前端基础之JavaScript - day14
  13. MySQL体系结构图详解
  14. Ubuntu16.04中搭建TFTP 和 NFS 服务器
  15. 2.sklearn库中的标准数据集与基本功能
  16. Eclipse添加Spket插件实现ExtJs智能提示
  17. auto类型说明符的注意事项
  18. IBatis项目中com.ibatis.common.xml.NodeletException的解决方案
  19. 【ArcGIS笔记】数据处理
  20. 原!linux 监控 jar定时任务 挂了重启 脚本

热门文章

  1. 账号被盗!请勿在CSDN,回复不论什么消息。
  2. EJBCA在Linux上的安装
  3. 看朋友日志发现的一个ios下block相关的内存管理问题,非常奇怪,请大家帮忙一起来回答!
  4. thinkphp3.2.3 excel导出,下载文件,包含图片
  5. 【33.10%】【codeforces 604C】Alternative Thinking
  6. mjpg-streamer摄像头远程传输UVC
  7. Error while trying to retrieve text for error ORA-12705
  8. 打开cad文件的几种方法
  9. [RxJS] Split an RxJS Observable into groups with groupBy
  10. 访问Ext.ComponentMgr中的组件对象