Swagger 在asp.net core中的应用2

简介:

Swagger是一个把api和注释生成一个可视(或可访问)的输出工具,关且还可以进行手工测试我们的api,解决了程序不想写文档的问题(哈哈)。

 

Swashbuckle.AspNetCore是用来解决asp.net core下的api文档,不但能称显UI,还可以在UI上进行测试。

如果在asp.net core中使用swagger,首先在nuget下安装Swashbuckle.AspNetCore,不过现在是预览版,一定要把“包括预发行版”打上勾。

wKioL1i6H5nhOmrtAAGsbe-7LLw806.png-wh_50

同时还要添加三个引用:

Swashbuckle.AspNetCore.SwaggerGen是生成Swagger文档的组件

Swashbuckle.AspNetCore.Swagger:是把Swagger文档生成Json Api的组件

Swashbuckle.AspNetCore.SwaggerUI,是把Json Api转成页面的组件

 

接下来设置项目属性,生成-Output节点的XML documentation file打上勾,用来保证能把action上的注释生成xml文档。

同时,Controller中的action都要加http特性,这样方例生成swagger文档时能找到准确的api,这点很重要

接下来,就要在Starup中去调置Swagger的使用了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public  void  ConfigureServices(IServiceCollection services)
  {           
      services.AddMvc();
      services.AddSwaggerGen(c =>
      {
          c.SwaggerDoc( "v1" new  Info
          {
              Title =  "Swagger测试" ,
              Version =  "v1" ,
              Description =  "Swagger测试RESTful API " ,
              TermsOfService =  "None" ,
              Contact =  new  Contact
              {
                  Name =  "桂素伟" ,
                  Email =  "axzxs2001@163.com"
              },
          });
          //设置xml注释文档,注意名称一定要与项目名称相同
          var  filePath = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath,  "SwaggerDemo.xml" );
          c.IncludeXmlComments(filePath);
          //处理复杂名称
          c.CustomSchemaIds((type) => type.FullName);
      });
  }
       
  public  void  Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  {
      loggerFactory.AddConsole(Configuration.GetSection( "Logging" ));
      loggerFactory.AddDebug();
      app.UseMvc();
      app.UseSwagger(c =>
      {
          //设置json路径
          c.RouteTemplate =  "docs/{documentName}/swagger.json" ;
      });
      app.UseSwaggerUI(c =>
      {
          //访问swagger UI的路由,如http://localhost:端口/docs
          c.RoutePrefix =  "docs" ;
          c.SwaggerEndpoint( "/docs/v1/swagger.json" "Swagger测试V1" );
          //更改UI样式
          c.InjectStylesheet( "/swagger-ui/custom.css" );
          //引入UI变更js
          c.InjectOnCompleteJavaScript( "/swagger-ui/custom.js" );
      });
  }

关于更多的UseSwagger参数和UseSwaggerUI参数可参考

https://github.com/domaindrivendev/Swashbuckle.AspNetCore

 

设置中的custom.css和custom.js如下

custom.css

1
2
3
4
.logo__title {
  font-weight : bold ;
  font-size : 0.8em ;
}
custom.js
1
2
var  titles=document.getElementsByClassName( "logo__title" );
titles[0].innerHTML =  "Swagger测试" ;

关于美化UI可以运行,查看具体的html Elements,然后去写css或js

wKioL1i6H-eSQ63pAAOSWEIb8yg179.png-wh_50


代码参考:https://github.com/axzxs2001/Asp.NetCoreExperiment














本文转自桂素伟51CTO博客,原文链接:http://blog.51cto.com/axzxs/1903143 ,如需转载请自行联系原作者



相关文章
|
5月前
|
开发框架 .NET C#
ASP.NET Core Blazor 路由配置和导航
大家好,我是码农刚子。本文系统介绍Blazor单页应用的路由机制,涵盖基础配置、路由参数、编程式导航及高级功能。通过@page指令定义路由,支持参数约束、可选参数与通配符捕获,结合NavigationManager实现页面跳转与参数传递,并演示用户管理、产品展示等典型场景,全面掌握Blazor路由从入门到实战的完整方案。
475 6
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:<https://github.com/khellang/Scrutor>
403 5
|
C# Android开发 iOS开发
2025年全面的.NET跨平台应用框架推荐
2025年全面的.NET跨平台应用框架推荐
658 23
|
开发框架 算法 中间件
ASP.NET Core 中的速率限制中间件
在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
343 1
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
409 3
|
12月前
|
JSON Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的使用
本文详细介绍了Swagger2的使用方法,包括在Spring Boot项目中的配置与应用。重点讲解了Swagger2中常用的注解,如实体类上的`@ApiModel`和`@ApiModelProperty`,Controller类上的`@Api`、`@ApiOperation`以及参数上的`@ApiParam`等。通过示例代码展示了如何为实体类和接口添加注解,并在页面上生成在线接口文档,实现接口测试。最后总结了Swagger的优势及其在项目开发中的重要性,提供了课程源代码下载链接供学习参考。
829 0
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的使用
|
12月前
|
缓存 Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的配置
本文介绍了在Spring Boot中配置Swagger2的方法。通过创建一个配置类,添加`@Configuration`和`@EnableSwagger2`注解,使用Docket对象定义API文档的详细信息,包括标题、描述、版本和包路径等。配置完成后,访问`localhost:8080/swagger-ui.html`即可查看接口文档。文中还提示了可能因浏览器缓存导致的问题及解决方法。
1204 0
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的配置
|
12月前
|
Java Maven 微服务
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的 maven 依赖
在项目中使用Swagger2工具时,需导入Maven依赖。尽管官方最高版本为2.8.0,但其展示效果不够理想且稳定性欠佳。实际开发中常用2.2.2版本,因其稳定且界面友好。以下是围绕2.2.2版本的Maven依赖配置,包括`springfox-swagger2`和`springfox-swagger-ui`两个模块。
509 0
|
12月前
|
前端开发 Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档—— Swagger 简介
第6课介绍了在Spring Boot中集成Swagger2以展示在线接口文档的方法。随着前后端分离架构的发展,API文档成为连接前端与后端开发的重要纽带。然而,代码更新频繁导致文档难以同步维护,Swagger2解决了这一问题。通过Swagger,在线API文档不仅方便了接口调用方查看和测试,还支持开发者实时测试接口数据。本文使用Swagger 2.2.2版本,讲解如何在Spring Boot项目中导入并配置Swagger2工具,从而高效管理接口文档。
397 0
|
数据可视化 Java API
Spring Boot与Swagger的集成
Spring Boot与Swagger的集成