.Net Core2.1 WebAPI新增Swagger插件详解

 更新时间:2018年07月10日 11:34:42   作者:Bug帝  
这篇文章主要给大家介绍了关于.Net Core2.1 WebAPI新增Swagger插件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

说明

Swagger是一个WebAPI在线注解、调试插件,过去我们主要通过手工撰写WebAPI接口的交互文档供前端开发人员或外部开发者,

官网地址:https://swagger.io/

但是在实际工作中,往往咋们的文档工作通常落后于实际的环境,导致文档和实际接口不一致,前后端开发人员苦不堪言。

Swagger的出现解放了接口文档撰写的麻烦也提高了前后端开发者的工作效率,所谓“工欲善其事,必先利其器 ”。现在让咋们

了解下在.NET Core 2.1下如何实现Swagger。

1、Nuget安装依赖包

 首先Nuget安装Swashbuckle.AspNetCore

打开Nuget控制台(程序包管理控制台),键入下列命令

Install-Package Swashbuckle.AspNetCore

2、添加Swagger中间件

public IServiceProvider ConfigureServices(IServiceCollection services)
 {
  services.Configure<CookiePolicyOptions>(options =>
  {
  // This lambda determines whether user consent for non-essential cookies is needed for a given request.
  options.CheckConsentNeeded = context => true;
  options.MinimumSameSitePolicy = SameSiteMode.None;
  });
 
  services.AddMvc().AddJsonOptions(options =>
  {
  //忽略循环引用
  options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
  //不使用驼峰样式的key
  options.SerializerSettings.ContractResolver = new DefaultContractResolver();
  })
  .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
 
  // Register the Swagger generator, defining 1 or more Swagger documents
  services.AddSwaggerGen(c =>
  {
  c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
  });
  return RegisterAutofac(services);//注册Autofac
 }

引用Swashbuckle.AspNetCore.Swagger,并启用中间件

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
 {
  if (env.IsDevelopment())
  {
  app.UseDeveloperExceptionPage();
  }
  // 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.UseVisitLogger();
  app.UseMvc();
 }

3、配置WebAPI项目属性

1、双击Properties下的launchSettings.json,将launchUrl更新为swagger

 

F5结果如下:

 4、新增注解

如上图,虽然WebAPI已经出来了,但是呢,并没有发现我们在Action上写的注释? 老司机应该知道在Framework版本里我们需要

将WebAPI启动项属性里更改“项目生产“一栏中新增XML文档,.NetCore也是如此。如下图:

 

保存后,按F5发现并木有生产注解,Why???  那是因为我们必须明确告诉Swagger应该从哪个路径读取WebAPI注解XML文件,更新Startup下的ConfigureServices。

参考下面代码:

// Register the Swagger generator, defining 1 or more Swagger documents
 services.AddSwaggerGen(options =>
 {
  options.SwaggerDoc("v1", new Info { Title = "TestSystem", Version = "v1" });    
  //注入WebAPI注释文件给Swagger  
  var xmlPath = Path.Combine(AppContext.BaseDirectory, "AirWebApi.xml");
  options.IncludeXmlComments(xmlPath);
 
  options.IgnoreObsoleteActions();
  ////options.IgnoreObsoleteControllers();
  //// 类、方法标记 [Obsolete],可以阻止【Swagger文档】生成
  options.DescribeAllEnumsAsStrings();   
  options.OperationFilter<FormDataOperationFilter>();
 });

代码不单单新增了注解,同时添加了阻止Swagger文档生成的配置,通过读取系统的[Obsolete]特性实现。

现在,让我们再看看结果吧~

 

 是不是很爽~~

还有,Swagger是支持授权登录的哦,这个待研究。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • AspNetPager与Socut.Data使用方法

    AspNetPager与Socut.Data使用方法

    最近对AspNetPager与Socut.Data这两个控件产生了浓厚的兴趣,这两个控件配合可以减轻很多程序员编写代码的压力。ASpNetPager为分页控件,而Socut.Data为数据操作控件,ACCESS,MSSQL都可以。
    2008-10-10
  • ASP.NET MVC在基控制器中处理Session

    ASP.NET MVC在基控制器中处理Session

    这篇文章介绍了ASP.NET MVC在基控制器中处理Session的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • ASP.NET下将Excel表格中的数据规则的导入数据库思路分析及实现

    ASP.NET下将Excel表格中的数据规则的导入数据库思路分析及实现

    今天接到新的需求,要求将Excel表格中的数据显示在页面上个人想法:首先是规则的Excel数据导入,再有就是不规则的Excel数据导入,还有就是根据数据生成Excel
    2013-01-01
  • 2个页面间不通过Session与url的传值方式

    2个页面间不通过Session与url的传值方式

    2个页面间不通过Session与url的传值方式...
    2006-09-09
  • ASP.NET技巧:同时对多个文件进行大量写操作对性能优化

    ASP.NET技巧:同时对多个文件进行大量写操作对性能优化

    ASP.NET技巧:同时对多个文件进行大量写操作对性能优化...
    2006-09-09
  • 水晶报表asp.net的webform下基本用法实例

    水晶报表asp.net的webform下基本用法实例

    这篇文章主要介绍了水晶报表asp.net的webform下基本用法,实例讲述了asp.net中水晶报表的创建与使用方法,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • asp.net+ajax的Post请求实例

    asp.net+ajax的Post请求实例

    这篇文章主要介绍了asp.net+ajax的Post请求实现方法,实例分析了Ajax的发送post数据的原理与技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • ASP.NET Core自定义中间件的方式详解

    ASP.NET Core自定义中间件的方式详解

    这篇文章主要介绍了ASP.NET Core自定义中间件的方式,虽然ASP.NET Core为我们提供了一组丰富的内置中间件,但有些时候我们可能会需要自定义一些中间件,将其穿插到管道中,以便满足我们特定业务场景的需求,所以本文将介绍3种方式来满足自定义中间件的需求
    2022-08-08
  • .net简单使用Log4net的方法(多个日志配置文件)

    .net简单使用Log4net的方法(多个日志配置文件)

    log4net是.net中常用的一个日志记录工具,下面这篇文章主要给大家介绍了关于.net简单使用Log4net的方法(多个日志配置文件),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-11-11
  • 用vs调试sql存储过程图文介绍

    用vs调试sql存储过程图文介绍

    想必大家应该有给存储过程找错误的经历吧,一遍遍的去读sql代码,一句一句的测试,发现一个小错误可能都要用很长的时间,接下来将介绍使用vs2010调试存储过程,感兴趣的朋友可以不要错过了啊
    2013-02-02

最新评论