1
resposta

Consumindo Api

Boa Noite Pessoal, Eu tenho uma api que quando bato na url http://localhost:51742/api/restaurantes, ela me retorna uma lista de restaurantes em XML. Tenho duas dúvidas pois talvez a primeira está diretamente envolvida com a segunda.

Como eu faço para retornar no formato JSON?

Segunda estou desenvolvendo um cadastro de restaurantes com angular, fiz os passos do curso, porém quando olho no console aparece o seguinte erro: Failed to load http://localhost:51742/api/restaurantes: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, …}

Como consigo consumir esses dados?

O angular e a api estão em portas diferentes no localhost em diretórios diferentes.

1 resposta

Oi Romario, tudo bem?

Bom, pra que os dados sejam retornados em JSON ao invés de XML, você precisa modificar algo na sua API ou mesmo verificar se não é algo relacionado ao content negociation.

Algumas APIs permitem você informar o formato que deseja receber. Algo como na extensão final da URI: "localhost/restaurantes.json".

O segundo problema é relativo ao CORS. Onde você não consegue fazer requisições de domínios diferentes. É uma política de segurança do navegador. Por isso, na API você precisa informar quais outros endereços podem fazer requisições para o seu serviço, isso é feito através do cabeçalho informado no erro: 'Access-Control-Allow-Origin'

Você pode ler mais a respeito disso no site da Mozilla: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS

Lá também indica como resolver o problema.