全书目录

第十五篇:ASP.NET Core 完全指南 —— 国家级综合服务枢纽宇宙

第六章:Controller —— 标准化综合柜台

1 分钟 257 字 第 295 / 962 个阅读单元

Controller 更像“标准化综合柜台”。它不是更高级,只是更适合中大型团队的组织方式。

csharp
[ApiController]
[Route("api/permits")]
public class PermitsController : ControllerBase
{
    private readonly IPermitService _permitService;
    private readonly ILogger<PermitsController> _logger;

    public PermitsController(
        IPermitService permitService,
        ILogger<PermitsController> logger)
    {
        _permitService = permitService;
        _logger = logger;
    }

    [HttpGet("{id:int}")]
    public async Task<ActionResult<PermitDto>> GetById(int id)
    {
        var permit = await _permitService.GetByIdAsync(id);

        if (permit is null)
        {
            return NotFound();
        }

        _logger.LogInformation("查询证照成功,PermitId={PermitId}", id);
        return Ok(permit);
    }

    [HttpPost]
    public async Task<ActionResult<PermitDto>> Create(CreatePermitRequest request)
    {
        var created = await _permitService.CreateAsync(request);
        return CreatedAtAction(nameof(GetById), new { id = created.Id }, created);
    }
}
#Controller 的优势
  • 结构清晰,约定明确。
  • 适合多人协作。
  • 更容易做分层、过滤器、特性标注、统一风格。
  • 当 API 数量很多时,可维护性更强。
#Minimal API 和 Controller 怎么选
维度 Minimal API Controller
上手速度
文件层次 明确
小型服务 很合适 可以
大型业务系统 可以,但容易散 更稳
团队协作

不是谁淘汰谁,而是枢纽里两种窗口模式并存。