gpt4 book ai didi

asp.net-core - 使用 GraphQL API 的清洁架构 CQRS

转载 作者:行者123 更新时间:2023-12-03 15:13:44 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

上个月关门。




Improve this question




我正在使用 API 服务器(ASP.NET Core)。
为了防止将来出现意大利面条式代码和其他讨厌的东西,我按照 Clean Architecture/CQRS(使用 MediatR)设计了系统。
我正在考虑将 GraphQL 用于 API 而不是 REST(热巧克力 GraphQL)。
在 HotChocolate GraphQL 的几个示例中,使用 GraphQL-EF 机制直接查询数据库。虽然这看起来很有好处,但我担心从长远来看这可能会使代码复杂化。数据库结构可能会发生变化等。在我看来,API 应该与存储库层保持分离。
即使做更多的工作,我相信 GraphQL 应该改为与 CQRS 通信。

最佳答案

尽管不是一个封闭式回答“是或否”的问题,但我同意你的看法。我怀疑这些例子中的大多数可能只是为了演示。如果不分离合约、业务逻辑和数据层,似乎很难确保 SOLID 原则。
像您一样使用 CQRS 和 MediatR,您可以更轻松地执行 DDD。因此,命令/查询位于应用程序层似乎很自然,而存储库的实现可以转到基础架构。另一方面,API 合约将进入表示层。
事实上,我们可以根据我们的业务需求,在应用层中自始至终开发几个功能。这些功能可能会提供不同的演示模块,或者以不同方式公开的 API、UI 应用程序等。另一方面,这些功能可以依赖于各种基础设施数据存储库或外部源,例如。
Microsoft 提供了关于常见 Web 架构的很好的分析 here , 专注于清洁架构 here .
最后,在我看来,是的,您可以在 Presentation 中设置 GraphQL API,在应用层中使用 CQRS 设计并使用 MediatR 编排的业务逻辑,以及在基础架构中实现的数据存储库(尊重在应用)。

关于asp.net-core - 使用 GraphQL API 的清洁架构 CQRS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63179486/

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