Jump to content
rdavisp

ASP.NET Core API para acesso a mais de uma apicação em Angular

Recommended Posts

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!

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By diagphp
      Olá amigos, sou muito novo no assunto de consultar APIs em PHP, então gostaria por gentileza de uma ajuda.
       
      Tem uma api externa que devemos consultar, mas está retornando o erro: PHP Fatal error: Uncaught Error: Class 'GuzzleHttp\Client' not found in /home1/

      A hospedagem é Hostgator.
       
       
      A consulta é simples:
       
      <?php
      $client = new \GuzzleHttp\Client();
      $response = $client->get("https://api.centraldofrete.com/v1/cargo-type", [
          'headers' => [
                  'Authorization' => '{token do cliente}',
              ],
      ]);
      $body = $response->getBody();
      print_r(json_decode((string) $body));
      ?>
       
      Alguém poderia me ajudar a fazer este tipo de consulta e obter o retorno da API? Tem algum arquivo a mais que tenho que colocar no servidor?
       
      Agradeço a  ajuda!
    • By Marcos PP
      Tenho que retornar os dados desta URL e transformar em variaves em PHP

      Ja tentei alguns exemplos mas so me retorna Null

      http://betontec.fortiddns.com:8082/api/login?usuario=joeliton&senha=123

       
      $data = file_get_contents('http://betontec.fortiddns.com:8082/api/login?usuario=joeliton&senha=123'); $data = json_decode($data,true); var_dump($data);  
    • By fernandoxwiggy
      Bom dia,
      Alguém já teve que desenvolver o CIOT da empresa E-frete em C#?
       
      Estou buscando exemplos de como fazer usando o web service deles (http://dev.efrete.com.br/Services/LogonService.asmx).
      Eu acredito que preciso chamar o "login" (depois o logout) dentro desse web service, mas ele é uma interface e não estou achando um exemplo de chamar um procedimento em um web service que seja um interface.
       
      Agradeço desde já se alguém puder ajudar.
    • By Guilherme Costa Lopes
      Estou usando o AgmCoreModule, para marcar endereços no google maps.
      No module, no import
           imports: [
               AgmCoreModule.forRoot({
                 apiKey: 'xxxxxxxxxxx'
              }),
           ]
      no export
            exports: [
                  AgmCoreModule
           ]
      No ts
           texto = 'teste';
             lat = -19.91506;
             lng = -44.00752;
             zoom = 15;
      No html
           <agm-map [latitude]="lat" [zoom]="zoom" [longitude]="lng">
             <agm-marker [latitude]="lat" [longitude]="lng"></agm-marker>
           </agm-map>
      A principio ele mostra
       
      Mas depois dá este erro

      Ou este erro

      No servidor está dando este erro.

       
      O Chave key está  liberada
       
          main.cb562ea7df40e3f09b5f.bundle.js:2 Refused to load the script 'https://maps.googleapis.com/maps/api/js?v=quarterly&callback=agmLazyMapsAPILoader&key=AIzaSyCD54jiJhEBda5MtJkgFJB-hfR6dv5V9jw&language=pt' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-inline' 'unsafe-eval' https://storage.googleapis.com". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
       
           main.cb562ea7df40e3f09b5f.bundle.js:2 ERROR Error: Uncaught (in promise): Event: {"isTrusted":true}
               at x (main.cb562ea7df40e3f09b5f.bundle.js:2)
               at x (main.cb562ea7df40e3f09b5f.bundle.js:2)
               at main.cb562ea7df40e3f09b5f.bundle.js:2
               at e.invokeTask (main.cb562ea7df40e3f09b5f.bundle.js:2)
               at Object.onInvokeTask (main.cb562ea7df40e3f09b5f.bundle.js:2)
               at e.invokeTask (main.cb562ea7df40e3f09b5f.bundle.js:2)
               at t.runTask (main.cb562ea7df40e3f09b5f.bundle.js:2)
               at y (main.cb562ea7df40e3f09b5f.bundle.js:2)
               at t.invokeTask [as invoke] (main.cb562ea7df40e3f09b5f.bundle.js:2)
               at u (main.cb562ea7df40e3f09b5f.bundle.js:2)
      O  que pode ser ?
       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.