Nuget 安装包区别

Core2.2

Core3.0 升级swagger 配置区别

 

 

 Core3.0

 

Core3.0 升级swagger 配置区别

 

 

Core3.0 升级swagger 配置区别

 

Core3.0 升级swagger 配置区别

 

 

 Core3.0 升级swagger 配置区别

 

 

 

IDocumentFilter区别

Core2.2

Core3.0 升级swagger 配置区别

 

 

 Core3.0 升级swagger 配置区别

 

 

 

Core3.0

Core3.0 升级swagger 配置区别

 

 

 

Core 2.2

app.UseSwagger(c =>
{
  c.PreSerializeFilters.Add((swaggerDoc, httpReq) => swaggerDoc.Host = httpReq.Host.Value);
});

  

Core 3.0

app.UseSwagger(c =>
{
  c.PreSerializeFilters.Add((swagger, httpReq) =>
  {
    swagger.Servers = new List<OpenApiServer> { new OpenApiServer { Url = $"{httpReq.Scheme}://{httpReq.Host.Value}" } };
  });
});

 

原使用到的info改变为OpenApiInfo

Microsoft.OpenApi 代替 Swashbuckle.AspNetCore.Swagger

Core 2.2

Core3.0 升级swagger 配置区别

 

 

Core 3.0

Core3.0 升级swagger 配置区别

 

 

Swagger 添加 token Header区别

Core 2.2

public class AddAuthTokenHeaderParameter : IOperationFilter
    {
        public void Apply(Operation operation, OperationFilterContext context)
        {
            if (operation.Parameters == null)
                operation.Parameters = new List<IParameter>();

            var attrs = context.ApiDescription.ActionDescriptor.AttributeRouteInfo;

            //先判断是否是匿名访问,
            var descriptor = context.ApiDescription.ActionDescriptor as ControllerActionDescriptor;
            if (descriptor != null)
            {
                //var isAuthorized = descriptor..Select(filterInfo => filterInfo.Instance).Any(filter => filter is IAuthorizationFilter);

                var actionAttributes = descriptor.MethodInfo.GetCustomAttributes(inherit: true);

                bool isAnonymous = actionAttributes.Any(a => a is AllowAnonymousAttribute);
                bool isAuthorized = actionAttributes.Any(a => a is AuthorizeAttribute);
                //非匿名的方法,链接中添加accesstoken值
                if (!isAnonymous && isAuthorized)
                {
                    operation.Parameters.Add(new NonBodyParameter()
                    {
                        Name = "Authorization",
                        In = "header",//query header body path formData
                        Type = "string",
                        Default = "",
                        Required = true //是否必选
                    });
                }

            }
        }
    }

  Core 3.0

public class AddAuthTokenHeaderParameter : IOperationFilter
    {
        public void Apply(OpenApiOperation operation, OperationFilterContext context)
        {
            if (operation.Parameters == null)
            {
                operation.Parameters = new List<OpenApiParameter>();
            }

            var attrs = context.ApiDescription.ActionDescriptor.AttributeRouteInfo;

            //先判断是否是匿名访问,
            var descriptor = context.ApiDescription.ActionDescriptor as ControllerActionDescriptor;
            if (descriptor != null)
            {
                //var isAuthorized = descriptor..Select(filterInfo => filterInfo.Instance).Any(filter => filter is IAuthorizationFilter);

                var actionAttributes = descriptor.MethodInfo.GetCustomAttributes(inherit: true);

                bool isAnonymous = actionAttributes.Any(a => a is AllowAnonymousAttribute);
                bool isAuthorized = actionAttributes.Any(a => a is AuthorizeAttribute);
                //非匿名的方法,链接中添加accesstoken值
                if (!isAnonymous && isAuthorized)
                {
                    operation.Parameters.Add(new OpenApiParameter()
                    {
                        Name = "Authorization",
                        In= ParameterLocation.Header,//query header body path formData
                        Description="Token验证",
                         Schema = new OpenApiSchema() { 
                            Type="string",
                         },
                        //In = "header",//query header body path formData
                        //Type = "string",
                        //Default = "",
                        Required = true //是否必选
                    });
                }

            }
        }
    }

  

相关文章:

  • 2021-12-02
  • 2021-10-30
  • 2022-12-23
  • 2021-05-22
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-28
  • 2022-12-23
  • 2022-12-23
  • 2021-06-16
  • 2022-12-23
  • 2021-08-01
相关资源
相似解决方案