SwaggerUI为前端开发人员提供了可视化的接口文档,省去了开发人员写接口文档的痛苦,也避免了文档更新不及时造成的开发问题,在前后端分离势在必行的年代,SwaggerUI几乎成为了开发人员必备的工具。

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

创建一个Asp.NetCoreWebApi项目并配置Swagger

1.创建一个Asp.NetCoreWebApi项目;

2.使用Nuget安装Swagger:

项目右键–》管理nuget程序包;

搜索Swashbuckle.AspNetCore并安装。

3.在startup.cs中注册swagger服务,并配置xml文件:

public void ConfigureServices(IServiceCollection services)
        {
            // 注册Swagger服务
            services.AddSwaggerGen(c =>
            {
                // 添加文档信息
                c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Mallsys.AppletApi.Core", Version = "v1" });
            });
            services.AddControllers();
        }

4.在startup.cs中配置swagger及swaggerui中间件

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();

            app.UseRouting();

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

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

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }

5.配置一下启动浏览器

运行项目,我们可以看见swaggerui已经生效了

6.配置注释信息:

为了方便前端人员使用,需要将代码的注释显示出来,首先需要修改项目文件:

右键项目—》编辑项目文件,在PropertyGroup节点下新增配置节点:

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

在startup–》ConfigureServices之前注册服务的方法中加入xml配置

public void ConfigureServices(IServiceCollection services)
        {
            // 注册Swagger服务
            services.AddSwaggerGen(c =>
            {
                // 添加文档信息
                c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Mallsys.AppletApi.Core", Version = "v1" });
                // 使用反射获取xml文件。并构造出文件的路径
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                // 启用xml注释. 该方法第二个参数启用控制器的注释,默认为false.
                c.IncludeXmlComments(xmlPath, true);
            });
            services.AddControllers();
        }

加好之后再次运行项目:

我们看到注释已经显示出来了。

本文地址:https://blog.csdn.net/yindi0712/article/details/107464610