问题描述
我正在使用 Swagger UI 来测试我的 ASP.NET Web Api 应用程序。我添加了一个允许操作参数的类
public void Apply(OpenApiOperation operation,OperationFilterContext context)
{
if (operation.Parameters == null)
operation.Parameters = new List<OpenApiParameter>();
operation.Parameters.Add(new OpenApiParameter
{
Name = "ApiKey",In = ParameterLocation.Header,required = true,Schema = new OpenApiSchema
{
Type = "String"
}
});
operation.Parameters.Add(new OpenApiParameter
{
Name = "Authentication",required = false,Schema = new OpenApiSchema
{
Type = "String"
}
});
}
在我的 Startup.cs 中,我将这一行添加到 ConfigurationServices 方法中
c.OperationFilter<CustomHeaderSwaggerAttribute>();
当我尝试测试其中一种控制器方法时,无论我在文本框中输入什么内容,我的 ApiKey 字符串参数始终显示错误。
解决方法
我不确定 Schema
属性,但过去对我有用(将 type
设置为 string
):
operation.Parameters.Add(new Parameter
{
name = "ApiKey",@in = ParameterLocation.Header,required = true,type = "string"
});
有关详细信息,请参阅this post