ASP.NET Core API para acesso a mais de uma apicação em Angular
Senhores, bom dia.
Mais uma vez recorro a ajuda de vocês para algo que não domino ainda. Vamos lá!
Tenho uma API que quando startada, ela sobe no seguinte endereço: http://localhost:49013/api/values. Percebi que isto é parametrizado no arquivo launchSettings.json, que está assim:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:49013/",
"sslPort": 0
}
},
"profiles":
{
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"Cliente.IG.WebAPI": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:49012/"
}
}
}
No meu controller da API, tenho seguinte método dentro do namespace:
[Produces("application/json")]
[Route("api/IG")]
[ApiController]
public class IGController : Controller
{
[HttpPost]
public IGResult Post([FromBody] Filtro filtro)
{
var app = new IgApplication();
return app.getInstrucoes(filtro);
}
}
O "IgApplication" cria uma instância da classe onde é gerado uma lista que é populada com os valores atribuídos do DAO.
Quando inicializo a aplicação "A" em angular através do localhost (http://localhost:4200/). Dentro do meu arquivo environment.prod.ts tenho a chamada:
export const environment = {
production: true,
url: 'http://localhost:49013/'
};
Ela passa por esse controller e segue o fluxo e faz o que tem que ser feito.
Porém, eis a questão! Eu possuo a aplicação "B", que acessa a mesma API porém possui funcionalidades diferente, por isso, dentro do mesmo controller eu criei uma nova classe e um método:
[Produces("application/json")]
[Route("api/Item")]
public class APIIgItemController : Controller
{
[HttpGet]
public ItensResult Post([FromBody] Itens ValorItem)
{
var app = new CRUDApplication();
return app.GetItens();
}
}
Como faço para quando for startar a aplicação "B", ele passe por esse método "**ItensResult**" ao invés "**IGResult**", sendo que ambas são executadas pelo **localhost:4200**? Ou isso eu defino na aplicação angular? Vi que é possível configurar mais de uma "applicationUrl" dentro do json. Devo considerar essa configuração?
Grato a quem puder ajudar!Discussão (0)
Carregando comentários...