spring-boot - 对正常的应用程序流使用 500 响应代码是否可行?使用 Angular7+Spring 设计弹出消息
问题描述
从 Java 的角度来看,使用异常来处理预期结果是错误的(异常应该是它们的名称)。
对于我的所有服务,我创建了包装机制,如果发生这种情况,基本上会提供有关失败的详细信息(所有返回都是任意的Result<?>
)。现在我需要在客户端浏览器的某个弹出窗口中显示此消息。
使用 Angular,HttpClient 实际上支持捕获 http 响应错误: https ://angular.io/guide/http#error-handling
这是从服务器到客户端报告错误的可行方式吗?
Angular 中有没有办法定义一些提取器来拆分来自后端 API 的响应?
假设我要让我的整个 REST API 返回正文:
{
messageType: "", // Success, Failure, Warning
message: "Message",
content: {
...
}
}
这样我就可以剥离message, messageType
拦截器,在弹出窗口中显示它们,然后只content
作为正文传递?
解决方案
使用@ControllerAdvice 在服务端捕获所有异常并在标准结构中抛出具有预期异常消息和状态代码的用户/功能特定异常的好方法,以便前端可以有一个异常控制器来即时评估此异常消息弹出消息动态到来自服务的任何消息。
推荐阅读
- function - 剪影函数给我一个错误:返回列表中未定义的元素号 2
- javascript - getUserMedia 在网站上工作,但在移动设备上不工作
- python - Groupby 和展平列表
- python - 实时流式传输来自 Pi 的视频帧
- google-cloud-platform - Google Cloud Memory Store (Redis) 使用情况
- java - 在 Java 中将数组声明为全局变量
- python - 在列中重复特定范围值并显示在数据框中
- javascript - 如何让绘图线在 Internet Explorer 中工作?
- node.js - 如何允许谷歌应用引擎节点 js 脚本调用跨域?
- matlab - 将 simulink 和 m-script 与断言块和回调结合使用