gpt4 book ai didi

oop - 从业务逻辑或应用程序返回错误的最佳方式是什么?

转载 作者:行者123 更新时间:2023-12-01 04:33:36 25 4
gpt4 key购买 nike

我正在使用 Laravel 开发一个 API。我正在编写业务逻辑和应用程序逻辑,并尽我所能将它们尽可能地分开。但是,我对这些概念很陌生。例如,我有登录用户的逻辑。我必须检查:

  • 如果给定的信用有效与否?
  • 如果系统中存在信用?
  • 如果用户处于事件状态
  • 保存数据
  • 尝试获取一些数据,但没有找到
  • 等等...

  • 我没有在 Controller 中检查所有这些(因为我认为这不是 Controller 的责任),而是在单独的 LoginFormProcessor 中检查。由 Controller 委托(delegate)的类。
    如果所有检查都通过, LoginFormProcessor将委托(delegate)对象在数据库中/从数据库中保存/获取对象。这是层次结构:
    Controller -> LoginFormProcessor -> Repository

    我想返回 LoginFormProcessor 中发生的详细 JSON 错误(如果有)或 Repository但不是直接来自这些类(因为这不是他们的责任),而是来自 Controller 。

    我如何将提到的错误返回给 Controller ,以便 Controller 可以创建有意义的响应并发送给客户端。
    我应该从 LoginFormProcessor 返回一些整数类型的错误代码吗?和 Repository ?但随后我将不得不检查所有可能的错误代码,这是另一个令人头疼的问题。我不认为这是一个好习惯。

    有什么建议和好的做法吗?

    最佳答案

    您希望您的业务逻辑和应用程序逻辑与您的交付机制无关,这意味着它们不应返回 HttpCodes。相反,您应该使用异常(需要时自定义异常),在表示层( Controller )中捕获它们并相应地转换它们。

    当你用 Laravel 标记你的问题时,你可以看看 https://laravel.com/docs/5.6/errors#render-method了解如何捕获异常并将它们转换为 HttpCodes。

    关于oop - 从业务逻辑或应用程序返回错误的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52153145/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com