Core WebAPI配置Swagger

1、配置Swagger:

Swagger是一套接口文档的规范,通过这套规范,你只需要按照它的规范去定义接口以及接口相关的信息。再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端代码,以及在线接口调试页面等等。

  • nuget管理安装程序包:Swashbuckle.AspNetCore,或者Nuget控制台命令安装:Install-Package SwashBuckle.AspNetCore -Version 5.0.0-rc4

  

services.AddSwaggerGen(s =>
            {
                s.SwaggerDoc("swagger_v1", new Microsoft.OpenApi.Models.OpenApiInfo()
                {
                    Title = "CoreAPI接口", //标题
                    Version = "v1" //版本号
                });
            });

  

  • 引用Swagger中间件

app.UseSwagger();
            app.UseSwaggerUI(s =>
            {
                s.SwaggerEndpoint("/swagger/swagger_V1/swagger.json", "MyAPIDoc_v1");
                //s.RoutePrefix = string.Empty; 
            });

 如果要在应用根目录使用SwaggerUI,请将RoutePrefix属性设置为空字符串

  • Swagger高级应用使用
    • wagger为API文档增加说明信息,在AddSwaggerGen方法进行添加作者、许可证和说明等信息……
services.AddSwaggerGen(s =>
            {
                s.SwaggerDoc("swagger_v1", new Microsoft.OpenApi.Models.OpenApiInfo()
                {
                    Title = "CoreAPI接口", //标题
                    Version = "v1",//版本号
                    Description="这里是文档说明",
                    TermsOfService=new Uri("https://www.cnblogs.com/zousc/"),
                    //作者信息
                    Contact=new Microsoft.OpenApi.Models.OpenApiContact()
                    {
                        Name="姓名",
                        Email="邮箱",
                        Url = new Uri("https://www.cnblogs.com/zousc/")
                    },
                    //许可证
                    License=new Microsoft.OpenApi.Models.OpenApiLicense()
                    {
                        Name = "假装是许可证",
                        Url = new Uri("https://www.cnblogs.com/zousc/")
                    }
                });
            });

到了这Swagger就能显示了,但是注释还不会显示,接下来启用XML注释 可使用以下方法启用 XML 注释:

  • 右键单击“解决方案资源管理器”中的项目,然后选择“属性”
  • 查看“生成”选项卡的“输出”部分下的“XML 文档文件”框

启用 XML 注释后会为未记录的公共类型和成员提供调试信息。如果出现很多警告信息  例如,以下消息指示违反警告代码 1591:

warning CS1591: Missing XML comment for publicly visible type or member 'TodoController.GetAll()'

注意: ​

  1. 对于 Linux 或非 Windows 操作系统,文件名和路径区分大小写。 例如,“SwaggerDoc.xml”文件在 Windows 上有效,但在 CentOS 上无效。 ​
  2. 获取应用程序路径,建议采用Path.GetDirectoryName(typeof(Program).Assembly.Location)这种方式或者·AppContext.BaseDirectory这样来获取
services.AddSwaggerGen(s =>
            {
                s.SwaggerDoc("swagger_v1", new Microsoft.OpenApi.Models.OpenApiInfo()
                {
                    Title = "CoreAPI接口", //标题
                    Version = "v1",//版本号
                    Description="这里是文档说明",
                    TermsOfService=new Uri("这里是服务条款"),
                    //作者信息
                    Contact=new Microsoft.OpenApi.Models.OpenApiContact()
                    {
                        Name="姓名",
                        Email="邮箱",
                        Url = new Uri("https://www.cnblogs.com/zousc/")
                    },
                    //许可证
                    License=new Microsoft.OpenApi.Models.OpenApiLicense()
                    {
                        Name = "假装是许可证",
                        Url = new Uri("https://www.cnblogs.com/zousc/")
                    }
                });
                // 为 Swagger JSON and UI设置xml文档注释路径
                //获取应用程序所在目录(绝对,不受工作目录影响,建议采用此方法获取路径)
                var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
                var xmlPath = Path.Combine(basePath, "SwaggerDoc.xml");
                s.IncludeXmlComments(xmlPath);
            });
  • 访问Ip:端口/swagger/index.html

  到这就完成了Swagger的配置~~

猜你喜欢

转载自www.cnblogs.com/zousc/p/12426458.html