João Filho
João Filho28/09/2024 13:48
Compartilhe

Controllers no .net8

    Olá, pessoal,

    Quando assistindo à aula de API do curso de Full Stack, percebi que o professor usa a versão .net 6.

    Na versão do .net 8, não temos a pasta Controllers com a class WeatherForecastController.

    Desse modo, passei um tempo estudando e pesquisei por aqui e o que consegui como solução foi o seguinte:

    • Criar uma pasta com o nome Controllers.
    • Dentro dessa pasta, seguir todas as instruções do professor do nosso curso para a criação da class Usuario.Controller. A minha ficou assim:
    using Microsoft.AspNetCore.Mvc;
    
    
    namespace módulo_api.Controllers
    {
      [ApiController]
      [Route("módulo-api/controller")]
    
    
      public class UsuarioController : ControllerBase
      {
          [HttpGet("ObterDataHoraAtual")]
          public IActionResult ObterDataHotaAtual()
          {
              var obj = new
              {
                  Data = DateTime.Now.ToLongDateString(),
                  Hora = DateTime.Now.ToShortTimeString()
              };
    
    
              return Ok(obj);
          }
      }
    }
    
    • No arquivo Program.cs é necessário adicionar a seguinte builder:
    >>>>>>> builder.Services.AddControllers(); <<<<<<<<
    
    builder.Services.AddEndpointsApiExplorer();
    builder.Services.AddSwaggerGen();
    
    • Ainda em Program.cs antes adicionei o seguinte comando:
    >>>>>>>>> app.MapControllers(); <<<<<<<<<<<<<<<<
    
    app.Run();
    
    • Em seguida é só executar no terminal:
    >>>>>> dotnet watch run <<<<<<<
    

    E pronto, temos o Controller rodando corretamente na API o Swagger.

    Espero ter ajudado! :) Passei um tempinho atrás de uma solução para isso, mas o importante é que agora consigo avançar no curso e ainda usando a versão atual do .net!

    Compartilhe
    Comentários (1)

    FI

    Fernando Iglesias - 17/10/2024 17:44

    Eu utilizei o comando no console 'dotnet new webapi -controllers' para criar o projeto na pasta e isso pareceu resolver o problema, conforme descrito no stackoverflow.