处理"未找到"在面向对象的REST CRUD系统中

时间:2015-06-26 07:16:55

标签: rest architecture crud restful-architecture

这个问题更多地涉及事物的理论方面,而不是我正在写的一些代码的直接问题。

我在寻找什么?

我有一个共同的问题,我相信很多人每天都会面对,我想建立意见,然后回答。我不确定是否有正确答案,但也许我们会在某处接近。

问题。

我正在创建一个RESTful API。此API适用于许多不同类型的子系统,DB的第三方API,SOAP等......

为了使我们的代码易于阅读,维护和测试,我们正在努力提出一种构建系统的一致方法。我们遇到的问题是,对于服务器错误和下游错误,我们会生成一个异常,该异常会将其自身呈现为带有一些有意义消息的HTTP 500/502响应。我们实现这一点的方式很好,我没有遇到问题,但是,目前我们以完全相同的方式生成HTTP 404,这是一个主要问题,因为404不是特别值得。

那么,您使用什么策略来处理这种情况?您是否有一个成功实现的通用架构来处理这个问题,而不会通过实体或表示逻辑污染您的核心域?您从存储库层返回什么,以便您的域层可以继续正常运行,无论是否有数据?

我正在考虑的一些可能的解决方案

  • 使用NullObject模式
  • 确保始终有一个id,我可以为
  • 设置一个空值

无论我做什么都需要非常容易阅读和遵循。

提前感谢您提供的任何帮助,建议或意见。

1 个答案:

答案 0 :(得分:2)

为什么404不例外值得?用户要求他们期望存在的东西,但事实并非如此。这是一个例外。您无法按照设计继续使用代码。