1
resposta

[Dúvida] [Erro] PUT está retornando 405 Method Not Allowed

Estou recebendo o seguinte erro ao tentar atualizar:

405 Method Not Allowed
Use of the request method is not allowed on the resource.
1 resposta

Willian, esse erro 405 ("Method Not Allowed") geralmente significa que a rota que você está tentando acessar existe, mas não aceita o método HTTP PUT.

Ve se sua rota aceita o método PUT

Confirme se você tem algo assim no seu código:

app.MapPut("/artistas/{id}", (int id, Artista artista) => {
    // lógica de atualização
});

Se estiver usando controller:

[HttpPut("{id}")]
public IActionResult Atualizar(int id, [FromBody] Artista artista) {
    // lógica
}

URL e método estão batendo?

Exemplo:

  • Endpoint definido: /artistas/{id}
  • Chamada feita: PUT para /artistas/1

Se fizer PUT em um endpoint como /artistas (sem {id}), e ele só aceita com id, vai dar 405.

Você não está usando método errado no cliente

Se estiver usando Postman, curl, JavaScript ou outra linguagem, confirme que está mesmo usando o método PUT.

Outros problemas comuns

  • Verifique se está chamando a URL correta (com o localhost:porta certo)
  • A rota está sendo registrada antes do app.Run()?
  • O middleware app.UseRouting() e app.UseEndpoints() estão configurados corretamente? (se estiver usando controllers)

Se puder, me manda o trecho de código onde define a rota PUT e como você está fazendo a requisição (ex: Postman, curl, JS). Com isso consigo te dar uma resposta mais precisa.