我正在实现一个REST API,我们使用Swashbuckle作为消费者文档。在我们的资源的PUT端点上,我们要求消费者使用资源的先前ETag发送If-Match标头。
我们想将此添加到Swashbuckle文档中,但似乎没有找到。我们如何向Swashbuckle添加对于某些端点,是否需要If-Match标头?
氪,
托马斯
答案 0 :(得分:3)
你可以使用IOperationFilter
这样做,这是一个示例代码:
public class AddRequiredHeaderParameters : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (operation.operationId == "ValueProvider_Put")
{
if (operation.parameters == null)
operation.parameters = new List<NonBodyParameter>();
operation.parameters.Add(HeaderParam("CID", "101"));
}
}
public IParameter HeaderParam(string name, string defaultValue, bool required = true, string type = "string", string description = "")
{
return new NonBodyParameter
{
Name = name,
In = "header",
Default = defaultValue,
Type = type,
Description = description,
Required = required
};
}
}
我在这里有一个工作样本:
以下是用户界面的外观: