根据 #216 ,Swashback将自动生成200个成功响应作为默认行为,或者期望指定所有响应类型。
我希望能够在XML注释中为一些端点添加404/400错误响应,同时为所有端点保留200个成功响应,包括那些具有404/400错误响应的端点。
即使指定了错误响应,是否可以使Swashback继续为所有端点自动生成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)) }); } } } }