Aspnetcore: Posso usar Áreas em projetos de API da Web principais do Asp.net?

Criado em 19 jan. 2019  ·  3Comentários  ·  Fonte: dotnet/aspnetcore

Estou trabalhando em um projeto que é um projeto de API web core Asp.net. A maioria dos meus projetos eu fiz por Asp.net MVC e Core MVC, mas eu faria um novo projeto baseado em Core Web API. no Core MVC temos o conceito de Áreas que podemos criar uma parte de Áreas para Admin, etc.... Se sim como posso fazer? Se você está pensando que há uma maneira melhor, diga-me, por favor.

area-mvc

Comentários muito úteis

Você pode colocar seus controladores de API em uma área, apenas para agrupá-los. Mas basicamente você fornece a rota no controlador, para que você possa criar rotas diferentes:
[Route("api/myarea/v1/[controller]")]

Todos 3 comentários

Você pode colocar seus controladores de API em uma área, apenas para agrupá-los. Mas basicamente você fornece a rota no controlador, para que você possa criar rotas diferentes:
[Route("api/myarea/v1/[controller]")]

Eu tenho o mesmo problema que tentei colocando meu ApiController na minha área para que a estrutura ficasse como abaixo

Aqui está o controlador Api dentro

Áreas/GL/Controladores

[Area("GL")] [Route("api/[controller]")] [ApiController] [HttpGet] public IActionResult Get() { return Ok("api controller"); }

Mas quando eu acesso minha URL
http://localhost :48357/GL/Api/Get
Ou
http://localhost :48357/Api/GL/Get
ou
http://localhost :48357/Api/Get
eu recebo

Código de status: 404; Não encontrado

Aqui está o código em

Startup.cs

routes.MapAreaRoute( name: "AreaGL", areaName: "GL", template: "GL/{controller=Home}/{action=Index}/{id?}" );

Por favor me ajudem nesta questão, o que estou fazendo de errado aqui?

Obrigado por entrar em contato conosco, @farhadibehnam.
Para que os controladores estejam em áreas, você deve aplicar a restrição de rota {area:exists} em sua rota de atributo, conforme descrito https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas? view=aspnetcore-2.2.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

dotNETSanta picture dotNETSanta  ·  3Comentários

BrennanConroy picture BrennanConroy  ·  3Comentários

Pixel-Lord picture Pixel-Lord  ·  3Comentários

rbanks54 picture rbanks54  ·  3Comentários

markrendle picture markrendle  ·  3Comentários