NetCore 配置Swagger的详细代码

目录

1.添加Nuget

install-package Swashbuckle.AspNetCore -project XXX -version 6.4.0

2.添加静态类扩展方法

2.1.生成项目xml:选中项目 / 右键 / 属性 / 生成 / 输出 / 选中xml文档文件

2.2.system_v1:必须唯一不重复,且【options.SwaggerDoc("system_v1"】必须与【options.SwaggerEndpoint("/swagger/system_v1/】一致,不然会异常【Failed to load API definition; Fetch error: response status is 404 /swagger/system_v1/swagger.json】

/// <summary>
    /// Swagger 静态类
    /// </summary>
    public static class SwaggerExtend
    {
        /// <summary>
        /// 添加服务: swagger
        /// </summary>
        /// <param name="services"></param>
        /// <returns></returns>
        public static void AddCustSwagger(this IServiceCollection services)
        {
            var version = "V1.0";
            var apiName = "XXX系统";
            services.AddSwaggerGen(options =>
            {
                options.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());

                options.SwaggerDoc("system_v1", new OpenApiInfo
                {
                    Version = version,
                    Title = $"{apiName} API",
                    Description = $"{apiName} {version} 接口服务"
                });

                //  获取应用程序所在目录
                var basePath = Path.GetDirectoryName(typeof(SwaggerExtend).Assembly.Location);
                var xmlPath = Path.Combine(basePath, "ProjectName.xml");
                //  swagger界面默认只显示 方法&字段 注释,不显示 控制器注释
                //  第二个参数为true, 则是controller的注释
                //options.IncludeXmlComments(xmlPath);
                options.IncludeXmlComments(xmlPath, true);
            });
        }

        /// <summary>
        /// 添加中间件: swagger
        /// </summary>
        /// <param name="app"></param>
        public static void UseCustSwagger(this IApplicationBuilder app)
        {
            app.UseSwagger();
            app.UseSwaggerUI(options =>
            {
                options.SwaggerEndpoint("/swagger/system_v1/swagger.json", "系统API");
                //  默认路径为:/swagger/index.html
                //  路由前缀 - 设置为空,可直接跳转到swagger页面:/index.html
                //  api测试可设置为空,部署时容易与前端路由冲突
                options.RoutePrefix = string.Empty;
            });
        }
    }

3.StartUp注册服务,添加中间件

public void ConfigureServices(IServiceCollection services)
        {
            services.AddCustSwagger();
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseCustSwagger();
        }

到此这篇关于NetCore 配置Swagger的的文章就介绍到这了,更多相关NetCore 配置Swagger内容请搜索代码部落以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码部落!

本文章来源于网络,作者是:Robot-Blog,由代码部落进行采编,如涉及侵权请联系删除!转载请注明出处:https://daimabuluo.cc/asp-net/512.html

联系我们

在线咨询:点击这里给我发消息

邮件:dick@daimabuluo.cc

遇到问题?请给我们留言

请填写您的邮箱地址,我们将回复您的电子邮件