目前使用 MediatR 实施 Clean Architure
IRequestHandler<IRequest<ResponseMessage>, ResponseMessage>
IRequest<ResponseMessage>
现在实现在业务逻辑层、基础设施和控制器之间分离,它们依赖于依赖注入和解耦。
目前实现在 Asp.Net Core 中,该框架支持在控制器中完成响应代码生成,如下例所示。
[HttpGet]
[ProducesResponseType(200)]
[ProducesResponseType(404)]
public async Task<IActionResult> GetObject([FromQuery] int Id)
{
...
return Ok(some_result_to_show); // This generates code 200
}
我想知道 Clean Architecture 层应该在哪里将业务规则决策转换为正确的响应代码,以及进行这种适应的良好实践或设置方法。似乎快速实现仍然会在控制器中执行,但是想知道这个决定是属于业务规则还是应用程序业务规则,并且应该在转换为表示层的响应代码之前在不同的层中处理。如果那时 Asp.Net 核心或 MediatR(或任何其他库)具有支持此类设计的内置框架或功能。