关于 Swagger

Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因:

  • Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。
  • Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。
  • Swagger 文件可以在许多不同的平台上从代码注释中自动生成。
  • Swagger 有一个强大的社区,里面有许多强悍的贡献者。

Swagger 文档提供了一个方法,使我们可以用指定的 JSON摘要来描述你的 API,包括了比如 names、order 等 API 信息。

1、安装Swashbuckle.AspNetCore

using Swashbuckle.AspNetCore.Swagger;

   public void ConfigureServices(IServiceCollection services){//注册Swagger生成器,定义一个和多个Swagger 文档services.AddSwaggerGen(c =>{c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });//设置版本号,标题var xmlPath = Path.Combine(Path.GetDirectoryName(typeof(Program).Assembly.Location), "SwaggerApi.xml");//为Swagger设置xml文档注释路径c.IncludeXmlComments(xmlPath);//只有设置了xmlm文档的路径生成的文档才会有注释c.OperationFilter<HttpHeaderOperation>(); // 添加httpHeader参数
            });services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);}

2、启用中间件服务

 public void Configure(IApplicationBuilder app, IHostingEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}else{app.UseHsts();}//启用中间件服务生成Swagger作为JSON终结点
            app.UseSwagger();//启用中间件服务对swagger-ui,指定Swagger JSON终结点app.UseSwaggerUI(c =>{c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");c.RoutePrefix = string.Empty;});app.UseHttpsRedirection();app.UseMvc();}

  3、新建HttpHeaderOperation

 public void Apply(Operation operation, OperationFilterContext context){if (operation.Parameters == null){operation.Parameters = new List<IParameter>();}var actionAttrs = context.ApiDescription.ActionAttributes();var isAuthorized = actionAttrs.Any(a => a.GetType() == typeof(AuthorizeAttribute));if (isAuthorized == false) //提供action都没有权限特性标记,检查控制器有没有
            {var controllerAttrs = context.ApiDescription.ControllerAttributes();isAuthorized = controllerAttrs.Any(a => a.GetType() == typeof(AuthorizeAttribute));}var isAllowAnonymous = actionAttrs.Any(a => a.GetType() == typeof(AllowAnonymousAttribute));if (isAuthorized && isAllowAnonymous == false){operation.Parameters.Add(new NonBodyParameter(){Name = "Authorization",  //添加Authorization头部参数In = "header",Type = "string",Required = false,Description = "access token"});}}public void Apply(SwaggerDocument swaggerDoc, DocumentFilterContext context){throw new NotImplementedException();}

4、配置XML文档路径

5、地址栏输入http://localhost:{port}/swagger/index.html

转载于:https://www.cnblogs.com/qzxj/p/10783600.html

.net core WebApi 使用Swagger生成API文档相关推荐

  1. ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了

    引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者 ...

  2. 【转】ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了

    原文链接:https://www.cnblogs.com/yilezhu/p/9241261.html 引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必 ...

  3. knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案

    knife4j knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量, ...

  4. 浅析如何在Nancy中使用Swagger生成API文档

    原文:浅析如何在Nancy中使用Swagger生成API文档 前言 上一篇博客介绍了使用Nancy框架内部的方法来创建了一个简单到不能再简单的Document.但是还有许许多多的不足. 为了能稍微完善 ...

  5. SpringBoot——SpringBoot集成Swagger生成API文档

    文章目录: 1.写在前面 2.步骤详解 2.1 pom文件中添加Swagger依赖 2.2 在application.properties核心配置文件中配置Swagger 2.3 编写需要生成API文 ...

  6. Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api(二十)

    一:Swagger介绍 Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目 实现了与SpingMVC框架的无缝集成功能,方便生成spring r ...

  7. .NET Core 3.0 使用Nswag生成Api文档和客户端代码

    摘要 在前后端分离.Restful API盛行的年代,完美的接口文档,成了交流的纽带.在项目中引入Swagger (也称为OpenAPI),是种不错的选择,它可以让接口数据可视化.下文将会演示 利用N ...

  8. 在ASP.NET Core Web API上使用Swagger提供API文档

    我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的API文档功能.当设置IISExpress的默认启动路由到Swagger的API文档页 ...

  9. springboot 集成 swagger 自动生成API文档

    Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案. S ...

最新文章

  1. 两种方式(goto语句以及while循环)实现C语言关机小程序
  2. 【Oracle】Oracle索引
  3. 自己写的android apk反编译,获取Android自己写好了的apk以及反编译
  4. jfinal调用mysql存储过程 封装_jfinal如何调用存储过程?
  5. PHP双码率视频云转码服务系统源码 m3u8切片秒切
  6. Docker教程小白实操入门(20)--如何删除数据卷
  7. 计算机科学导论3000,计算机网络导论论文_大一计算机科学导论论文_计算机导论论文3000字...
  8. Axure PR9的安装与激活
  9. 写一篇简单的 IEEE 会议论文
  10. struts1——静态ActionForm与动态ActionForm
  11. 分析一下weiliu89的caffe-ssd代码吧
  12. 小区宽带网络解决方案
  13. Android 获取经纬度。2018年写
  14. deepnode软件下载地址_安卓苹果软件下载地址恢复
  15. 1.3读论文笔记:M. Raissi a等人的Physics-informed neural networks:A deep learning framework for solving forw..
  16. 文档型非关系数据库MongoDB经验总结
  17. 大武口计算机考试培训,大武口电脑培训地址
  18. 服务器安装虚拟机怎么分配内存,配置虚拟机的内存的方法
  19. 他三流大学毕业,从学渣逆袭成上市CEO
  20. position为absolute与fixed区别

热门文章

  1. [蓝桥杯][算法提高VIP]开灯游戏(dfs)
  2. PolandBall and Forest(并查集)
  3. android ndk怎样加载o文件_在Android中使用TFLite c++部署
  4. mac mysql 设置短命令_短小强大的8个命令,分分钟帮你提高工作效率!
  5. cmake 找不到 macros_愿我们在彼此看不到的岁月里熠熠生辉
  6. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](5)
  7. linux mysql v_Linux 主机升级MySQL v5.5 性能提升360%
  8. linux内核驱动模块开发步骤及实例入门介绍
  9. NVIDIA显卡驱动版本,CUDA版本,cudnn版本之间关系及如何选择
  10. Git丢弃不要的修改