请求响应
XinAdmin 定义了统一的请求响应格式,前端 axios 与后端 Laravel 配合实现自动化的请求处理、错误提示和异常处理。
响应数据结构
标准响应格式
成功响应示例
失败响应示例
ShowType 显示类型
ShowType 用于控制前端提示框的显示方式,定义在 App\Enum\ShowType 中。
后端响应 Trait
控制器继承 BaseController 后即可使用 RequestJson Trait 提供的响应方法。
成功响应
失败响应
警告响应
通知响应
抛出响应
除了返回响应,还可以通过 throw 抛出响应来中断程序:
使用场景:在业务逻辑中间中断执行,无需手动 return。
前端请求封装
前端通过 axios 封装统一处理请求响应。
请求配置
自动处理
前端自动处理以下内容:
- 自动附加 Token:除登录接口外,自动在请求头添加
Authorization: Bearer {token} - 自动附加语言:自动附加
User-Language到请求头 - 请求去重:相同参数的可重复请求会自动取消
- 错误提示:根据
showType自动展示 Message 或 Notification - 401 处理:自动跳转登录页
HTTP 状态码处理
业务错误处理
当 success: false 时,根据 showType 处理:
列表响应格式
分页数据
响应示例
使用示例
后端控制器
前端调用
异常处理
全局异常处理
ExceptionsHandler 统一处理未捕获的异常:
HttpResponseException
业务代码可通过抛出 HttpResponseException 直接返回响应:
最佳实践
1. 统一响应格式
在控制器中始终使用 $this->success() 或 $this->error() 返回响应,保持格式一致。
2. 合理选择 showType
- 普通操作反馈:使用默认的 Message
- 重要操作需要用户确认:使用 Notification
- 后台静默处理:使用 SILENT
3. 错误消息本地化
4. 前端统一错误处理
避免在业务代码中手动处理响应错误,依赖前端的统一拦截器处理。