当前位置: 首页 > 面试题库 >

如何处理REST异常?

沈俊明
2023-03-14
问题内容

我们正在进行有关如何处理REST异常的持续讨论。

响应内容类型:JSON

我们有两种解决方案:

  1. 将所有未检查的异常作为JSON响应抛出。
  2. 发送请求无效响应代码。

参数

  • 当出现错误时,为什么要返回JSON?只需发送无效的响应码即可。

相反的观点:

  • 对于普通开发人员而言,响应代码的技术性太强。

你怎么说?


问题答案:

对于JSON
API,我最近开发了两者。我总是使用有效的JSON进行响应(假设我完全响应)。如果检测到无效请求,则使用状态400。如果检测到服务器错误(我不认为这是由无效请求引起的),则使用5xx状态。JSON对象包含一个仅针对错误设置的特殊键,具有字符串值。

我认为这是一个尊重REST原则的好解决方案,并且可以多种方式使用。某些其他JSON API(例如Yahoo
Search)也使用相同的解决方案。尝试http://search.yahooapis.com/ImageSearchService/V1/imageSearch?appid=YahooDemo&output=json。



 类似资料:
  • 我最近从Ruby的Net:HTTP类切换到rest-client 1.6.7。

  • 我正在使用quarkus版本,需要知道如何处理未知endpoint。当我试图命中尚未实现的endpoint时,它只会发送,而不是我希望实现的异常。我无法找到相同的实现。有人能帮我做这个吗?

  • 问题内容: 这个问题已经在这里有了答案 : 我的PDO声明无效 (1个答案) 4年前关闭。 我正在尝试在php上使用类,但是在查找正确的错误处理方式时遇到了一些麻烦,我编写了以下代码: 这部分代码不报告错误,但根本不起作用,底部的var 返回空值。 有人可以帮我找到我错了吗? 问题答案: 除非您告知,否则PDO不会引发异常。你跑了吗: 在PDO对象上?

  • 问题内容: 我正在尝试建立一个大型的REST服务服务器。我们正在使用Spring Boot 1.2.1,Spring 4.1.5和Java8。我们的控制器正在实现@RestController和标准的@RequestMapping注释。 我的问题是Spring Boot为控制器异常设置了默认重定向到/error。从文档: Spring Boot默认提供一个/ error映射,以一种明智的方式处理所

  • 我正在尝试建立一个大型的REST服务服务器。我们使用的是spring boot 1.2.1 spring 4.1.5和Java 8。我们的控制器实现了@RestController和标准的@RequestMapping注释。 我的问题是,spring boot将控制器异常设置为的默认重定向。从文档中: 默认情况下,spring boot提供了一个/error映射,它以一种合理的方式处理所有错误,并

  • 我在我的项目中使用Log4j 2将儿子日志写入数据库表。这些事件是基于某些MDC密钥/值对来标识的。我关心的是这个appender可以从其append方法中抛出的未经检查的LoggingExcture。这些数据库日志是在异步事务进程中生成的,我不希望主进程受到appender引发的潜在异常的影响。我应该怎么照顾它?我应该将基于配置的appender移动到自定义appender吗?在日志事件追加错误