Web Api - Dois Metodos iguais

Web service

REST

.NET

ASP.NET

JSON

16/08/2017

Ola!

Criei dois metodos iguais Web API, ou seja, que retornam listas pra montagem de graficos, porem, um é diario, o outro semanal.

Mas dá o erro: StatusCode: 405, ReasonPhrase: 'Method Not Allowed'

Se eu comentar um deles, o outro o serviço web api permiti.

Como faço?
Adriano Costa

Adriano Costa

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

16/08/2017

Olá, Adriano. Não é possível/permitido ter dois métodos exatamente iguais em assinatura ou em URL, pois o framework não saberia qual invocar para responder a URL.

Poderia colar aqui o código dos seus dois métodos par analisarmos?

Abraço.
GOSTEI 0
Adriano Costa

Adriano Costa

16/08/2017

Opa! O retorno de ambos sao diferentes:
(1) Retorna os registros diarios;
[HttpGet]
public List<Entidade.Temperatura> GetAllTemperatura()
{
List<Entidade.Temperatura> lista = new List<Entidade.Temperatura>();

TemperaturaNegocio negocio = new Negocio.TemperaturaNegocio();

lista = negocio.GetAllTemperatura();


return lista;

}


(2) Retorna os registros semanal.
[HttpGet]
public List<Entidade.Temperatura> GetTemperaturaSemanal()
{
List<Entidade.Temperatura> lista = new List<Entidade.Temperatura>();

TemperaturaNegocio negocio = new Negocio.TemperaturaNegocio();

lista = negocio.GetTemperaturaSemanal();

return lista;
}
GOSTEI 0
Wilson Neto

Wilson Neto

16/08/2017

Não seria melhor passar um parâmetro para decidir entre 1 e outro?
- api/temperatura/
- api/temperatura/diario
GOSTEI 0
Wilson Neto

Wilson Neto

16/08/2017

Não seria melhor passar um parâmetro para decidir entre 1 e outro?
- api/temperatura/
- api/temperatura/diario



Só complementando o exemplo:

- api/temperatura/
- api/temperatura/semanal

Seguindo na ordem dos métodos que você postou. :)
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

16/08/2017

Nesse caso, Adriano, até por questões de melhorar a interface da sua API, indico que defina uma rota específica para cada método, como o Wilson indicou acima.

Atualmente dos dois métodos retornam um List<Entidade.Temperatura> e são do tipo Get sem parâmetro, por isso o framework não consegue definir automaticamente qual é o método padrão para a rota api/temperatura.
GOSTEI 0
POSTAR