注册百度网站怎么弄,成都响应式网站建,设计师可以在哪些网站接单,如何为网站开发app1. 前端请求发起
假设前端通过 HTTP GET 请求访问 GetTemplateSettings 端点#xff0c;URL 中包含了 SubjectUuid 和 SubjectType 作为查询参数。
2. 进入 Controller 方法
请求到达后#xff0c;会进入 MinBcController 类中的 GetTemplateSettings 方法#xff0c;该方…1. 前端请求发起
假设前端通过 HTTP GET 请求访问 GetTemplateSettings 端点URL 中包含了 SubjectUuid 和 SubjectType 作为查询参数。
2. 进入 Controller 方法
请求到达后会进入 MinBcController 类中的 GetTemplateSettings 方法该方法是通过 [HttpGet(GetTemplateSettings)] 特性绑定的。GetTemplateSettings 方法接收一个 GetTemplateSettingsRequest 类型的参数该参数由 FromQuery 特性指定从 URL 查询参数中绑定。 [HttpGet(GetTemplateSettings)] public async TaskResultTemplateSettingsVO GetTemplateSettings([FromQuery] GetTemplateSettingsRequest request) { var data await mediator.Send(request); return new ResultTemplateSettingsVO(data); }public record GetTemplateSettingsRequest(string SubjectUuid, SubjectType SubjectType) : IRequestTemplateSettingsVO;
3. 请求通过 MediatR 分发
在 GetTemplateSettings 方法内部通过调用 mediator.Send(request) 将 GetTemplateSettingsRequest 请求对象发送给 MediatR 进行处理。
4. MediatR 查找并执行处理器
MediatR 接收到 GetTemplateSettingsRequest 请求后会根据该请求的类型 GetTemplateSettingsRequest找到对应的处理器 GetTemplateSettingsRequestHandler。GetTemplateSettingsRequestHandler 是 IRequestHandlerGetTemplateSettingsRequest, TemplateSettingsVO 的实现类负责处理类型为 GetTemplateSettingsRequest 的请求并返回 TemplateSettingsVO 类型的结果。
5. 处理器执行业务逻辑
GetTemplateSettingsRequestHandler 类的 Handle 方法被调用。此方法接受 GetTemplateSettingsRequest 对象作为参数并通过 IWeuuSession、IUserService、CardDbContext 等服务执行相关的业务逻辑。业务逻辑处理完成后Handle 方法返回一个 TemplateSettingsVO 对象。 public class GetTemplateSettingsRequestHandler(IWeuuSession session, IUserService userService, CardDbContext cardContext) : IRequestHandlerGetTemplateSettingsRequest, TemplateSettingsVO { public async TaskTemplateSettingsVO Handle(GetTemplateSettingsRequest request, CancellationToken cancellationToken) { //其他代码 return v; } }
6. 返回处理结果
MediatR 将 Handle 方法返回的 TemplateSettingsVO 对象返回给 GetTemplateSettings 方法中的 data 变量。GetTemplateSettings 方法将 TemplateSettingsVO 包装在 ResultTemplateSettingsVO 对象中并作为 HTTP 响应返回给前端。
7. 前端收到响应
最终前端接收到包含 TemplateSettingsVO 数据的 HTTP 响应并根据该数据进行后续处理。
总结
整个流程通过 MediatR 实现了请求的分发和处理器的解耦使得 Controller 层只需要关心如何将请求发送给 MediatR而业务逻辑则集中在处理器中处理。这种设计提高了代码的可维护性和可扩展性。