.net core WebApi 使用Swagger生成API文档
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了.net core WebApi 使用Swagger生成API文档,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2437字,纯文字阅读大概需要4分钟。
内容图文
![.net core WebApi 使用Swagger生成API文档](/upload/InfoBanner/zyjiaocheng/1085/c5243355e6b04421a8d7d80987d894c5.jpg)
关于 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" }); } } publicvoid Apply(SwaggerDocument swaggerDoc, DocumentFilterContext context) { thrownew NotImplementedException(); }
4、配置XML文档路径
5、地址栏输入http://localhost:{port}/swagger/index.html
原文:https://www.cnblogs.com/qzxj/p/10783600.html
内容总结
以上是互联网集市为您收集整理的.net core WebApi 使用Swagger生成API文档全部内容,希望文章能够帮你解决.net core WebApi 使用Swagger生成API文档所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。