13
respostas

[Dúvida] resposta da requisição: 404Not Found

quando eu mando a requisição pelo postman ele retorna como 404 not foundInsira aqui a descrição dessa imagem para ajudar na acessibilidade

a nivel de teste eu mandei um para a porta só que sem o /filme e em get, e ele funcionou corretamente Insira aqui a descrição dessa imagem para ajudar na acessibilidadeo controller esta exatamente como na aula

using FilmesApi.Controllers.Models;
using Microsoft.AspNetCore.Mvc;

namespace FilmesApi.Controllers;

[ApiController]
[Route("[controller]")]
public class FilmeController : ControllerBase
{

    private static List<Filme> filmes = new List<Filme>();

    [HttpPost]
    public void AdicionaFilme([FromBody] Filme filme)
    {
        filmes.Add(filme);
        Console.WriteLine(filme.Titulo);
        Console.WriteLine(filme.Duracao);
    }
}
13 respostas

mais uma coisa, caso eu mande como post pra raiz ele volta como bad request

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Opá!

Como você não inseriu a descrição das imagens e o OCR do meu leitor não pegou tudo, não consegui identificar se você usou o método POST pra fazer a request.

Mas tenta com o seguinte CURL (alterando o número da porta para a que está no seu projeto):

curl --request POST \
  --url http://localhost:8080/filme \
  --header 'Content-Type: application/json' \
  --data '{
  "titulo": "A Saga dotnet",
  "genero": "Aventura",
  "duracao": 180
}'

Nos Console.WriteLine dentro do método você passou somente o título e a duração... seu objeto Filme está mapeado corretamente e está mandando a request com o body correto?

Se não tiver resolvido, deixa o link do seu repo aí ...

bom dia, ainda não consegui resolver, esse é o link do git: https://github.com/EvandroVeronaJr/FilmesApi/tree/main/FilmesApi

Opá!

Dei uma passada rápida pelo seu projeto e vi que você adicionou um HTML/CSS e um JS no projeto, bem como alterou algumas configurações ...

E, de fato, mesmo fazendo a request para a URI correta, com verbo correto e passando o corpo correto na request ele retorna um 404...

Apesar de eu estar no começo dos estudos de C# e ASP.Net Core, vou ver se descubro o que está pegando ...

Abraço!

então eu criei tudo conforme o curso, no caso o resto foi criado automaticamente.

Estou com o mesmo problema. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Descobri a solução para o meu erro, talvez resolva para ti também. Notei que enviando pelo swagger estava enviando corretamente sem erros, e o endereço estava /controller. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeEntão alterei o endereço no postman para https://localhost:7042/controller e deu certo.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Salve, galera!

O comportamento dessa API está muito estranho, já que ela, pelo visto, não está aceitando o mapeamento da controller. Tentei colocar um mapeamento manual em um endpoint retornando uma string e nem assim deu certo. Ela só retorna 200 se chamar a URL base; outra coisa é que nem o swagger está carregando...

Descobri o porquê de o projeto de vocês estar diferente e com esses problemas de mapeamento da controller!

Vocês deveriam ter criado o seguinte projeto: ASP.NET Core Web API - A project template for creating an ASP.NET Core application with an example Controller for a RESTful HTTP service. This template can also be used for ASP.NET Core MVC Views and Controllers..

No entanto, ao invés disso foi criado um projeto do tipo: ASP.NET Core Web App (Model-View-Controller) - A project template for creating an ASP.NET Core application with example ASP.NET Core MVC Views and Controllers. This template can also be used for RESTful HTTP services..

Acabei de gerar um projeto similar aqui e ele vem com os name spaces 'Pages' e 'wwwroot' como no projeto de vocês.

Minha sugestão seria vocês deletarem o projeto e criar outro com o padrão correto utilizado no curso.

Mais detalhes sobre o Web App em: ASP .NET Core - Exibindo arquivos em wwwroot — Mozilla Firefox

Espero ter ajudado!

Boa tarde!

Descobri o real motivo do erro, em "route" havia esquecido de colocar os colchetes em "controller", realizando esse ajuste, roda normalmente em /Filme.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

aqui mesmo alterando a requisição para /controller continua dando o mesmo erro

Oi Evandro!

O que o Wybson falou está correto. Seu projeto foi criado como sendo uma aplicação Web ao invés de uma API Rest

Crie um novo projeto de acordo com as opções mostradas pelo instrutor nesse vídeo: https://cursos.alura.com.br/course/dotnet-criando-web-api/task/117391