.net core WebApi 使用Swagger生成API文档
关于 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文档相关推荐
- ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了
引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者 ...
- 【转】ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了
原文链接:https://www.cnblogs.com/yilezhu/p/9241261.html 引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必 ...
- knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案
knife4j knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量, ...
- 浅析如何在Nancy中使用Swagger生成API文档
原文:浅析如何在Nancy中使用Swagger生成API文档 前言 上一篇博客介绍了使用Nancy框架内部的方法来创建了一个简单到不能再简单的Document.但是还有许许多多的不足. 为了能稍微完善 ...
- SpringBoot——SpringBoot集成Swagger生成API文档
文章目录: 1.写在前面 2.步骤详解 2.1 pom文件中添加Swagger依赖 2.2 在application.properties核心配置文件中配置Swagger 2.3 编写需要生成API文 ...
- Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api(二十)
一:Swagger介绍 Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目 实现了与SpingMVC框架的无缝集成功能,方便生成spring r ...
- .NET Core 3.0 使用Nswag生成Api文档和客户端代码
摘要 在前后端分离.Restful API盛行的年代,完美的接口文档,成了交流的纽带.在项目中引入Swagger (也称为OpenAPI),是种不错的选择,它可以让接口数据可视化.下文将会演示 利用N ...
- 在ASP.NET Core Web API上使用Swagger提供API文档
我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的API文档功能.当设置IISExpress的默认启动路由到Swagger的API文档页 ...
- springboot 集成 swagger 自动生成API文档
Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案. S ...
最新文章
- 两种方式(goto语句以及while循环)实现C语言关机小程序
- 【Oracle】Oracle索引
- 自己写的android apk反编译,获取Android自己写好了的apk以及反编译
- jfinal调用mysql存储过程 封装_jfinal如何调用存储过程?
- PHP双码率视频云转码服务系统源码 m3u8切片秒切
- Docker教程小白实操入门(20)--如何删除数据卷
- 计算机科学导论3000,计算机网络导论论文_大一计算机科学导论论文_计算机导论论文3000字...
- Axure PR9的安装与激活
- 写一篇简单的 IEEE 会议论文
- struts1——静态ActionForm与动态ActionForm
- 分析一下weiliu89的caffe-ssd代码吧
- 小区宽带网络解决方案
- Android 获取经纬度。2018年写
- deepnode软件下载地址_安卓苹果软件下载地址恢复
- 1.3读论文笔记:M. Raissi a等人的Physics-informed neural networks:A deep learning framework for solving forw..
- 文档型非关系数据库MongoDB经验总结
- 大武口计算机考试培训,大武口电脑培训地址
- 服务器安装虚拟机怎么分配内存,配置虚拟机的内存的方法
- 他三流大学毕业,从学渣逆袭成上市CEO
- position为absolute与fixed区别
热门文章
- [蓝桥杯][算法提高VIP]开灯游戏(dfs)
- PolandBall and Forest(并查集)
- android ndk怎样加载o文件_在Android中使用TFLite c++部署
- mac mysql 设置短命令_短小强大的8个命令,分分钟帮你提高工作效率!
- cmake 找不到 macros_愿我们在彼此看不到的岁月里熠熠生辉
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](5)
- linux mysql v_Linux 主机升级MySQL v5.5 性能提升360%
- linux内核驱动模块开发步骤及实例入门介绍
- NVIDIA显卡驱动版本,CUDA版本,cudnn版本之间关系及如何选择
- Git丢弃不要的修改