Swagger Ui(SwashBuckle for Core)没有为 Mandatory Headers 抛出 UI 级错误消息
Swagger Ui(SwashBuckle for Core) is not throwing UI level Error Message for Mandatory Headers
我目前正在使用 Swagger 开发 WebApi Ui。我面临一个奇怪的问题。我有一些 Header 字段,当用户尝试调用 API.
时,我将这些字段设置为必填(*必填)字段
如果用户错过了任何 header 它应该显示警告,如图 1 中给出的那样。(在图 1 中,红色标记的字段是查询参数)工作正常但不适用于Header。
Headers 我遇到了如图 2 所示的问题。错误假设出现在 UI 上,但它出现在浏览器控制台 window 上。
IOperationFilter中的代码如下
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
设置了所需的 headers.Using Swashbuckle.AspNetCore(5.6.3)
。在这方面的任何帮助都会非常棒!!
您必须为 header 参数指定 Schema
(数据类型),例如:
operation.Parameters.Add(new OpenApiParameter
{
Name = "X-Transaction-Id",
...
Schema = new OpenApiSchema // <-----------------
{
Type = "string"
}
});
我目前正在使用 Swagger 开发 WebApi Ui。我面临一个奇怪的问题。我有一些 Header 字段,当用户尝试调用 API.
时,我将这些字段设置为必填(*必填)字段如果用户错过了任何 header 它应该显示警告,如图 1 中给出的那样。(在图 1 中,红色标记的字段是查询参数)工作正常但不适用于Header。
Headers 我遇到了如图 2 所示的问题。错误假设出现在 UI 上,但它出现在浏览器控制台 window 上。
IOperationFilter中的代码如下
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
设置了所需的 headers.Using Swashbuckle.AspNetCore(5.6.3)
。在这方面的任何帮助都会非常棒!!
您必须为 header 参数指定 Schema
(数据类型),例如:
operation.Parameters.Add(new OpenApiParameter
{
Name = "X-Transaction-Id",
...
Schema = new OpenApiSchema // <-----------------
{
Type = "string"
}
});