Blogs
📆 2025-12-22 17:00

Controllers 的生成

概述

选择实体然后生成Controller,由于Controller依赖DTOManager,所以会先生成DTOManager

生成的Controller默认继承RestControllerBase<TManager>

[ApiExplorerSettings(GroupName = "v1")]
[Authorize(Policy = WebConst.User)]
public class RestControllerBase<TManager>(
    Localizer localizer,
    TManager manager,
    IUserContext user,
    ILogger logger
) : RestControllerBase(localizer)
    where TManager : class
{
    protected readonly TManager _manager = manager;
    protected readonly ILogger _logger = logger;
    protected readonly IUserContext _user = user;
}

Tip

控制器默认有一个Manager泛型,当需要多个Manager时,可自行注入Manager,然后在Controller中使用。

生成逻辑

controller的生成需要先获取以下信息

  • 通过DbContextParseHelper解析指定的实体类Entity,最终获取EntityInfo对象。
  • 用户选择的服务项目,判断是否引用了SystemMod(可配置),以便区分是否具有管理权限。
  • 前置步骤生成的Dto的信息,通过缓存获取
  • 解决方案配置信息

接口的生成,主要是通过调用Manager的相关方法来实现。根据RestApi的规范,生成的接口方法包括:

  • 分页查询
  • 新增
  • 更新
  • 获取详情
  • 删除

请查看RestApiGenerate类,了解具体的实现细节,TplContent.cs查看模板内容。

内容大纲