0
我知道我可以添加標題參數中招搖所有API爲Web Api How to add a Header parameter for all API in Swagger如何頭參數添加到特定的控制器/方法API.NET網絡API
描述了這種方法,頭參數會顯示出來在所有APIs的Swagger UI中。
但並非我所有的API /控制器都需要頭部參數,有沒有一種方法可以爲特定的控制器甚至特定的API添加頭部?
我知道我可以添加標題參數中招搖所有API爲Web Api How to add a Header parameter for all API in Swagger如何頭參數添加到特定的控制器/方法API.NET網絡API
描述了這種方法,頭參數會顯示出來在所有APIs的Swagger UI中。
但並非我所有的API /控制器都需要頭部參數,有沒有一種方法可以爲特定的控制器甚至特定的API添加頭部?
雖然這篇文章已經很老了,但我認爲如果在相同的情況下卡住 會有幫助。
public class AddRequiredHeaderParameter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry,
ApiDescription apiDescription)
{
if (operation.parameters == null)
{
operation.parameters = new List<Parameter>();
}
/*System.Diagnostics.Trace.WriteLine(apiDescription.RelativePath +
"=paath");*/
if (apiDescription.RelativePath.Contains(***{url***}))
{
operation.parameters.Add(new Parameter
{
name = "X-User-Token",
@in = "header",
type = "string",
required = false,
description=""
});
operation.parameters.Add(new Parameter
{
name = "authorization",
@in = "header",
description = "Token",
type = "string",
required = true
});
}
else
{
operation.parameters.Add(new Parameter
{
name = "X-User-Token",
@in = "header",
type = "string",
required = false,
description="description"
});
}
}
}