【发布时间】:2020-12-22 08:13:41
【问题描述】:
我目前正在使用 Swagger Ui 开发 WebApi。我面临一个奇怪的问题。当用户尝试调用 API 时,我将一些标题字段设置为强制(*必需)字段。
如果用户错过传递任何标题,它应该显示 Image-1 中给出的警告。(在 image-1 中,红色标记的字段是查询参数),它工作正常,但不适用于 Header。
对于标题,我遇到了如图 2 所示的问题。错误假设出现在 UI 上,但它出现在浏览器控制台窗口中。
IOOperationFilter中的代码如下
public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
if (operation.Parameters == null)
operation.Parameters = new List<OpenApiParameter>();
operation.Parameters.Add(new OpenApiParameter
{
Name = "X-Transaction-Id",
In = ParameterLocation.Header,
Required = true,
AllowEmptyValue=false,
Description="Transaction Id to track the issue"
});
}
注意:- 我使用IOperationFilter 设置所需的标头。使用Swashbuckle.AspNetCore(5.6.3)。对此的任何帮助都会非常棒!
【问题讨论】:
-
您的标头参数似乎缺少
type(数据类型)。请发布您的IOperationFilter代码。 -
在问题中添加。对于我以相同方式添加的所有标题。
标签: c# asp.net-core swagger swagger-ui swashbuckle.aspnetcore