.NET中的Swagger使用示例详解

 更新时间:2023年12月25日 15:49:40   作者:我是一只小小鱼~  
Swagger (OpenAPI) 是一个与语言无关的规范,用于描述 REST API,这篇文章给大家介绍.NET中的Swagger使用,感兴趣的朋友一起看看吧

前言

现在很多项目都是前后端分离的项目,后端写好接口跟前端对接,需要后端提供接口文档、参数等注释,这上面花时间着这些东西,接口修改又要去修改文档,很不方便前后端人员开发

一、Swagger是什么?

Swagger (OpenAPI) 是一个与语言无关的规范,用于描述 REST API。

OpenAPI 与 Swagger关系
Swagger 项目已于 2015 年捐赠给 OpenAPI 计划,自此它被称为 OpenAPI,这两个名称可互换使用。 不过,“OpenAPI”指的是规范。
简而言之:
OpenAPI 是一种规范。
Swagger 是一种使用 OpenAPI 规范的工具。 例如,OpenAPIGenerator 和 SwaggerUI。

目前从NETCore从3.1起已经集成Sawwger,无需再去引用库,创建项目后运行API项目自动Sawwger接口文档的页面 

介绍大家可能会关注的一些点

二、如何Swagger文档说明的信息

1.在AddSwaggerGen方法中写入文档信息

代码如下(示例):

builder.Services.AddSwaggerGen(options =>
{
    //诸如作者、文档说明的信息
    options.SwaggerDoc("v1", new OpenApiInfo
    {
        Version = "v1",
        Title = "我的API",
        Description = "这是我的netcoreAPI项目",//描述信息
        Contact = new OpenApiContact
        {
            Name = "我是小小鱼",
            Url = new Uri("https://blog.csdn.net/qq_42335551")
        }
    });

2.运行效果

如图(示例):

二、文档UI界面标题、路由设置

如何修改标签页的名、和地址要怎么修改呢

1.在中间件UseSwaggerUI方法中配置

 app.UseSwagger();
    app.UseSwaggerUI(c => { 
        c.DocumentTitle = "后台接口列表";   //标签页标题
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "公共模块");//接口文档json文件
        c.RoutePrefix =string.Empty;// 注:这里的路由修改后,launchSettings.json中的launchUrl对应需要调整为""
    });

 在次启动项目 已经变成修改后的标签页和地址

三、文档UI界面添加接口注释

如何添加接口的注释呢

1.在 .csproj中配置

    在解决方案资源管理器中右键单击该项目。
    将 GenerateDocumentationFile 添加到 .csproj 文件中PropertyGroup节点下

<GenerateDocumentationFile>true</GenerateDocumentationFile>

2.在AddSwaggerGen方法中配置IncludeXmlComments

代码如下(示例):

builder.Services.AddSwaggerGen(options =>
{
    //诸如作者、文档说明的信息
    options.SwaggerDoc("v1", new OpenApiInfo
    {
        Version = "v1",
        Title = "我的API",
        Description = "这是我的netcoreAPI项目",//描述信息
        Contact = new OpenApiContact
        {
            Name = "我是小小鱼",
            Url = new Uri("https://blog.csdn.net/qq_42335551")
        }
    });
    var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename), true);//true 显示控制器注释
});

 运行效果,已经显示出我们的注释

 可以在控制器、参数、实体类增加注释后,再次运行都有显示

四、对接口进行分组

1.在AddSwaggerGen、UseSwaggerUI分别添加如下信息

例如

    options.SwaggerDoc("yw", new OpenApiInfo { Title = "业务模块", Version = "yw" });
    options.SwaggerDoc("qt", new OpenApiInfo { Title = "其他模块", Version = "qt" });

例如

 c.SwaggerEndpoint("/swagger/v1/swagger.json", "公共模块");//接口文档json文件
 c.SwaggerEndpoint("/swagger/yw/swagger.json", "业务模块");
 c.SwaggerEndpoint("/swagger/qt/swagger.json", "其他模块");
 c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.List);//接口不展开None

 2.在controller或者action上打上ApiExplorerSettings特性

例如[ApiExplorerSettings(GroupName = "v1")]

总结

有Sawwger有利于前后端开发人员接口的对接,调试,功能上挺丰富的,简单的写了以上几点

到此这篇关于.NET中的Swagger使用的文章就介绍到这了,更多相关.NET Swagger使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • .NET内存泄漏分析Windbg项目实例

    .NET内存泄漏分析Windbg项目实例

    这篇文章介绍了.NET内存泄漏分析Windbg项目实例,文中通过示例代码介绍的非常详细。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • ASP.NET MVC实现文件下载

    ASP.NET MVC实现文件下载

    这篇文章介绍了ASP.NET MVC实现文件下载的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • asp.net url传递后地址栏乱码(中文超过两个汉字)

    asp.net url传递后地址栏乱码(中文超过两个汉字)

    asp.net 页面传中文超过两个汉字后面就乱码,编码编好的url是正确的,可传到另一个页面就会出错,在地址栏就已经乱码了,本文介绍详细的解决方法,感兴趣的朋友可以了解下,或许对你学习asp.net有所帮助
    2013-02-02
  • .Net消息队列的使用方法

    .Net消息队列的使用方法

    这篇文章主要介绍了.Net消息队列的使用方法,需要的朋友可以参考下
    2014-02-02
  • ASP.NET数据绑定之Repeater控件

    ASP.NET数据绑定之Repeater控件

    这篇文章主要介绍了ASP.NET数据绑定中的Repeater控件,Repeater控件可以将数据库中的信息加以绑定然后再在浏览器中显示出来,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • .net 像hao123的快捷邮箱登陆的实现代码

    .net 像hao123的快捷邮箱登陆的实现代码

    .net实现的像hao123的快捷邮箱登陆的代码,需要的朋友可以参考下。
    2010-03-03
  • asp.net发邮件的几种方法汇总

    asp.net发邮件的几种方法汇总

    .net中发送邮件方法有很多,如MailMessage,SmtpMail等下面我来给大家利用这些方法来实现在.net中邮件发送吧,希望此方法对各位同学会有所帮助
    2014-01-01
  • 从别人那拷下来的几点Session使用的经验

    从别人那拷下来的几点Session使用的经验

    从别人那拷下来的几点Session使用的经验...
    2007-04-04
  • Asp.Net Core使用Ocelot结合Consul实现服务注册和发现

    Asp.Net Core使用Ocelot结合Consul实现服务注册和发现

    这篇文章介绍了Asp.Net Core使用Ocelot结合Consul实现服务注册和发现的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • ASP.NET MVC使用JSAjaxFileUploader插件实现单文件上传

    ASP.NET MVC使用JSAjaxFileUploader插件实现单文件上传

    这篇文章介绍了ASP.NET MVC使用JSAjaxFileUploader插件实现单文件上传的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09

最新评论