DRF Standardized Errors 使用教程
项目介绍
drf-standardized-errors
是一个用于标准化 Django Rest Framework (DRF) API 错误响应的开源项目。它提供了一个异常处理器,可以将所有 4xx 和 5xx 错误响应格式化为统一的格式,便于文档化和处理。
项目快速启动
安装
使用 pip 安装 drf-standardized-errors
:
pip install drf-standardized-errors
配置
将 drf_standardized_errors
添加到你的 Django 项目的 INSTALLED_APPS
中:
INSTALLED_APPS = [
# 其他应用
"drf_standardized_errors",
]
注册异常处理器:
REST_FRAMEWORK = {
# 其他设置
"EXCEPTION_HANDLER": "drf_standardized_errors.handler.exception_handler",
}
应用案例和最佳实践
标准化错误响应
使用 drf-standardized-errors
后,所有 API 错误响应将统一格式化为以下标准格式:
{
"type": "validation_error",
"errors": [
{
"code": "invalid",
"detail": "This field is required.",
"attr": "name"
}
]
}
自定义错误响应格式
你可以通过自定义异常处理器来改变错误响应的格式。例如,处理一个非 DRF 异常:
from drf_standardized_errors.handler import exception_handler
def custom_exception_handler(exc, context):
response = exception_handler(exc, context)
if response is not None:
response.data['custom_field'] = 'custom_value'
return response
典型生态项目
集成 drf-spectacular
如果你计划使用 drf-spectacular
生成 OpenAPI 3 模式,可以安装 drf-standardized-errors[openapi]
:
pip install drf-standardized-errors[openapi]
配置集成:
DRF_STANDARDIZED_ERRORS = {
"ENABLE_IN_DEBUG_FOR_UNHANDLED_EXCEPTIONS": True
}
更多配置信息可以参考官方文档:DRF Standardized Errors 文档
参考链接
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考