我目前正在创建一个微服务项目,在其中实现 Bob Martin 创造的清洁架构模式。虽然我的代码运行良好,但我对干净的架构模式有疑问,特别是接口和 use_cases 层。该应用程序是我正在开发的一个小型电子商务 POC。话虽如此,由于它正在实现微服务,所以我有 3 个不同的服务。产品、图片和评论。每当发出获取“完整产品”的请求时,客户端都会 ping 完整产品的端点,它会抓取该端点,并使用其 id 来 ping 我的图像和评论服务,以获取该产品的所有图像和评论。
那么,我的问题是我应该在哪里实现创建这些调用的逻辑?我的直觉告诉我应该将它放在控制器层中,因为这是两个层中最抽象的,而且我不会因为将 axios 依赖项放在其中而感到难过。但可惜的是,我也觉得“完整的产品必须包括产品详细信息、图像和所有评论”这句话听起来很像商业规则。
我知道这个问题主要是主观的,但我想知道你如何实现这个逻辑,为什么?
我还应该提到,在我当前的解决方案中,我的 use_case 是我调用存储库并实际从数据库中获取产品的地方。话虽这么说,如果我将 API 调用放入控制器层,我必须首先调用我的 use_case 来获取产品,然后可能创建一个单独的 use_case 来检查我的最终对象是否实际上是“完整产品”。
I'm using a StreamWriter to write a string to memory and then return it as a file via an IActionResult in an ASP.Net Core Web API, and I'm running into a weird issue where I'm getting a line of indecipherable characters at the end of the output file...
Here's an image of what I'm talking about:
The text on line 513 is not supposed to be there... I'm thinking it has something to do with encoding, but I don't know …