Olá, Anna!
O erro 405 Method Not Allowed indica que o método HTTP utilizado na requisição não é suportado pelo recurso no servidor. No seu caso, é estranho que o método DELETE não esteja sendo permitido, já que você definiu o atributo [HttpDelete]
corretamente no seu método DeletaFilme
.
Uma possível causa para esse problema pode ser a configuração de rotas ou middlewares no seu projeto ASP.NET Core que esteja impedindo o método DELETE de ser reconhecido. Aqui estão algumas verificações e sugestões que você pode fazer para tentar resolver o problema:
Verifique as Rotas: Confira se as rotas estão configuradas corretamente em seu Startup.cs
ou onde você estiver configurando as rotas. Certifique-se de que não há restrições para o método DELETE.
Middleware de CORS: Se você estiver utilizando o middleware de CORS (Cross-Origin Resource Sharing), verifique se o método DELETE está permitido nas configurações de CORS.
WebDAV: Em alguns casos, o WebDAV (um protocolo de comunicação que permite a edição de arquivos em servidores remotos) pode estar habilitado e interceptar chamadas DELETE. Se estiver usando o IIS, verifique se o WebDAV está desabilitado para a sua aplicação.
Configuração do IIS: Se estiver hospedando sua aplicação no IIS, confira se o método DELETE não está sendo bloqueado nas configurações do servidor.
Outros Middlewares: Verifique se não há outros middlewares que possam estar bloqueando o método DELETE.
Logging: Adicione logs no início do seu método DeletaFilme
para verificar se a requisição está chegando até ele. Se não estiver, o problema pode estar em alguma parte da configuração da pipeline do ASP.NET Core.
Teste com outra ferramenta: Tente fazer a requisição DELETE usando outra ferramenta, como o curl, para ver se o problema persiste. Isso pode ajudar a determinar se o problema está no Postman ou no servidor.
Aqui está um exemplo de como você pode configurar o CORS para permitir o método DELETE:
services.AddCors(options =>
{
options.AddPolicy("AllowSpecificOrigin",
builder => builder.WithOrigins("http://exemplo.com")
.AllowAnyHeader()
.WithMethods("GET", "PUT", "POST", "DELETE"));
});
E no método Configure
:
app.UseCors("AllowSpecificOrigin");
Espero que essas sugestões te ajudem a resolver o problema. Lembre-se de testar as alterações e verificar se alguma delas resolve o erro 405. Espero ter ajudado e bons estudos!