.NetCore WebApi——Swagger简单配置

在前后端分离的大环境下,API接口文档成为了前后端交流的一个重点。Swagger让开发人员摆脱了写接口文档的痛苦。

官方网址:https://swagger.io/

在.Net Core WebApi中通过简单配置即可使用这一强大的功能。

1.新建一个API的项目

选择 API 项目

2.引入Swagger包。.Net Core 中支持两个分别为Swashbuckle和NSwag。两者的配置大同小异。这里以Swashbuckle为例。

方式1:选择工具——Nuget包管理——管理解决方案的Nuget包

搜索:Swashbuckle.AspNetCore  安装即可

方式2:直接在程序包管理控制台输入:Install-Package Swashbuckle.AspNetCore  回车即可安装

安装之后在项目的Nuget包中就可以看到了

3.配置Swagger中间件

3.1 在Startup类ConfigureServices方法中添加Swagger服务并配置文档信息

  

 public void ConfigureServices(IServiceCollection services)
        {
            // 注册Swagger服务
            services.AddSwaggerGen(c =>
            {
                // 添加文档信息
                c.SwaggerDoc("v1", new Info { Title = "CoreWebApi", Version = "v1" });
            });
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }

   3.2 在 Startup类Configure 方法中,启用中间件为生成的 JSON 文档和 Swagger UI 提供服务

  

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            // 启用Swagger中间件
            app.UseSwagger();

            // 配置SwaggerUI
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "CoreWebApi");

            });
            app.UseMvc();
        }

右键项目属性,将URL地址固定到某个端口

然后将启动项设置为当前项目,然后启动。

在根目录目前是没有东西的。下一步将在根目录处使用SwaggerUI

将RoutePrefix属性设置为空

    app.UseHttpsRedirection();
            // 启用Swagger中间件
            app.UseSwagger();

            // 配置SwaggerUI
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "CoreWebApi");
                c.RoutePrefix = string.Empty;
            });

再次启动项目,SwaggerUI文档成功显示出来。整体简洁大方。

 API的信息说明:传递给AddSwaggerGen()的方法可配置一些API的信息说明以及作者信息等,来展示到UI页面。修改AddSwaggerGen()方法。 

// 注册Swagger服务
            services.AddSwaggerGen(c =>
            {
                // 添加文档信息
                c.SwaggerDoc("v1", new Info
                {
                    Title = "CoreWebApi",
                    Version = "v1",
                    Description="ASP.NET CORE WebApi",
                    Contact=new Contact
                    {
                        Name="Jee",
                        Email="[email protected]"
                    }
                });
            });

展示对应的信息

 4.启用XML注释。上边的效果只有一个简单说明,并没有我们在后台写的注释。启用XML注释之后可以轻松映射到UI界面方便前端开发人员理解。

右键当前项目——编辑****.csproj 的文件  在PropertyGroup标签组中添加如下两条

<GenerateDocumentationFile>true</GenerateDocumentationFile> <NoWarn>$(NoWarn);1591</NoWarn>

这两句的大概意思就是启用XML注释,并忽略未写注释的警告。不添加1591如果某个方法未写 "///"各式的注释,vs会有警示的消息。

之后AddSwaggerGen()方法中读取xml文件路径并启用

       // 注册Swagger服务
            services.AddSwaggerGen(c =>
            {
                // 添加文档信息
                c.SwaggerDoc("v1", new Info
                {
                    Title = "CoreWebApi",
                    Version = "v1",
                    Description="ASP.NET CORE WebApi",
                    Contact=new Contact
                    {
                        Name="Jee",
                        Email="[email protected]"
                    }
                });
                // 使用反射获取xml文件。并构造出文件的路径
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                // 启用xml注释. 该方法第二个参数启用控制器的注释,默认为false.
                c.IncludeXmlComments(xmlPath,true);
            });

再次启动项目,可以看到写的注释全部都映射出来了

Text类的返回值也可以映射出来

Models文件夹中的实体也可以映射在接口下方

 总结:   在.net core中配置swagger非常之快速。但这也是堪堪达到可以用的程度,算是入门级别吧。

源码:GitHub

https://github.com/xiaoMaPrincess/Asp.NetCore-WebApi

原文地址:https://www.cnblogs.com/jixiaosa/p/10759832.html

时间: 2024-10-14 22:38:22

.NetCore WebApi——Swagger简单配置的相关文章

.NetCore WebApi —— Swagger版本控制

上接:.NetCore WebApi——基于JWT的简单身份认证与授权(Swagger) 版本控制的好处是显而易见的,利用Swagger展示不同版本的API更能体现效果. 1.安装Nuget包:Microsoft.AspNetCore.Mvc.Versioning 2. 配置Startup类  2.1  添加新成员 ,用来获取API版本信息 /// <summary> /// Api版本信息 /// </summary> private IApiVersionDescription

swagger简单配置

第一步: 在nuget.org中查找Swashbuckle并下载 在nuget.org中查找Swagger.net.UI,并下载 第二步: 下载完之后,App_Start多了三个文件 Swagger.Auth.cs SwaggerConfig.cs SwaggerNet.cs 将SwaggerNet.cs删除,没用的cs文件 第三步: 配置:SwaggerConfig.cs 将 c.IncludeXmlComments(string.Format("{0}/bin/SwaggerDemo.XML

.Net Webapi Swagger增加登录功能

.mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑体", Arial; font-size: 18px; font-weight: bold; height: 25px; line-height: 25px; margin: 15px 0 !important; padding: 5px 0 5px 20px; width: 97% } .arti

使用Swashbuckle.AspNetCore生成.NetCore WEBAPI的接口文档

一.问题 使用Swashbuckle.AspNetCore生成.NetCore WEBAPI的接口文档的方法 二.解决方案 参考文章:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/web-api-help-pages-using-swagger?tabs=visual-studio 1.Install-Package Swashbuckle.AspNetCore 2.在ConfigureServices中添加AddSwaggerGe

0123简单配置LNMP

简单配置LNMP不怕出现错误,就怕错误不知道出现在哪里?看日值tail -f /var/log/message -- 系统整个的日志tail -f /var/log/nginx/error.log -- 单个应用的日志http://www.cnblogs.com/make217/p/5836864.htmlhttp://www.cnblogs.com/xiaoit/p/3991037.html

Samba服务器的简单配置

案例说明: 公共目录        public   /abc            ro  允许任何人匿名访问, Daiqing1        smbdq1   /tmp/daiqing1   rw  不允许他人访问 Daiqing2        smbdq2   /tmp/daiqing2   rw  不允许他人访问 Samba服务器的简单配置,布布扣,bubuko.com

Linux安装MariaDB和简单配置

1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start mariadb 设置开机启动 systemctl enable mariadb 接下来进行MariaDB的相关简单配置 mysql_secure_installation 首先是设置密码,会提示先输入密码 Enter current password for root (enter for none):<–初

linux ntp安装简单配置

公司的一台服务器硬件坏了挂了,其中就有ntp服务端,写一下ntp服务端的简单配置. 1.首先安装ntp,centos 系统执行 yum install ntp 2.写入配置文件/etc/ntp.conf如下 restrict 192.168.18.153 mask 255.255.255.0 nomodify notrap restrict 192.168.18.0 mask 255.255.255.0 nomodify server time.pool.aliyun.com #server 1

gedit变身为编程利器的简单配置

本文由fcbruce个人原创整理,转载请注明出处:http://blog.csdn.net/u012965890/article/details/38472149.>_< 用了linux有半年多了(ubuntu->debian),之前敲代码都是通过IDE来编译运行,一直有转Vim的想法,可是那玩意太高端,暂时玩不过来.前两天发现gedit加上各种插件简直就是神器,这两天一直在抽空配置,试用了下,感觉很爽,哈哈哈哈哈哈哈,下面来分享下我的心得.>_< 操作系统:Debian 7