在指定其他响应类型时自动生成默认的 200 OK 响应
Automatically generate default 200 OK response while specifying other response types
根据#216,Swashbuckle 将自动生成一个 200 成功响应作为默认行为,否则需要指定所有响应类型。
我希望能够在 XML 评论中为某些端点添加 404/400 错误响应,同时为所有端点保留 200 个成功响应,包括具有 404/400 错误响应的端点.
是否可以让 Swashbuckle 继续为所有端点自动生成 200 成功响应,即使指定了错误响应?
编辑:我添加了一个操作过滤器以编程方式添加缺失的 200 个响应,解决了缺失的模型模式,但仍然没有真正回答我最初的问题,即是否有办法让 Swashbuckle 自动生成 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))
});
}
}
}
这是一种解决方法,可以将缺少的 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))
});
}
}
}
}
根据#216,Swashbuckle 将自动生成一个 200 成功响应作为默认行为,否则需要指定所有响应类型。
我希望能够在 XML 评论中为某些端点添加 404/400 错误响应,同时为所有端点保留 200 个成功响应,包括具有 404/400 错误响应的端点.
是否可以让 Swashbuckle 继续为所有端点自动生成 200 成功响应,即使指定了错误响应?
编辑:我添加了一个操作过滤器以编程方式添加缺失的 200 个响应,解决了缺失的模型模式,但仍然没有真正回答我最初的问题,即是否有办法让 Swashbuckle 自动生成 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))
});
}
}
}
这是一种解决方法,可以将缺少的 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))
});
}
}
}
}