根据#216,Swashbuckle会自动生成200个成功响应作为默认行为,否则需要指定所有响应类型。
我希望能够在XML注释中为某些端点添加404/400错误响应,同时保留所有端点的200个成功响应,包括那些具有404/400错误响应的端点。
即使指定了错误响应,是否可以使Swashbuckle继续为所有端点自动生成200成功响应?
编辑:我添加了一个操作过滤器,以编程方式添加缺失的200个响应,这些响应解决了丢失的模型模式,但仍然没有真正回答我关于是否有保留Swashbuckle&#39的方法的原始问题; s自动生成200个成功响应
class CustomOperationFilter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
var responses = operation.responses;
if (responses.ContainsKey("404") || responses.ContainsKey("400"))
{
responses.Add("200", new Response()
{
description = "OK",
schema = (schemaRegistry.GetOrRegister(apiDescription.ActionDescriptor.ReturnType))
});
}
}
}
答案 0 :(得分:1)
以下是向已指定错误响应的端点添加缺少的200个成功响应的解决方法:
class CustomOperationFilter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
var responses = operation.responses;
if (!responses.ContainsKey("200"))
{
if (apiDescription.ActionDescriptor.ReturnType != null)
{
responses.Add("200", new Response()
{
description = "OK",
schema = (schemaRegistry.GetOrRegister(apiDescription.ActionDescriptor.ReturnType))
});
}
}
}
}