Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Como que a API encontrou a pasta "Api" criada?

Estou com dificuldades para entender como que o projeto encontrou essa pasta e como que montou o caminho da API.

5 respostas

Olá Diego, tudo certo?

A aula que está linkado esse post não fala sobre pasta API.

Sobre qual pasta está falando? Sobre qual parte do curso você se refere?

Tem como descrever melhor qual é a sua dificuldade para que eu possa te ajudar?

No aguardo!

Opa. Tudo bem Fabiano,

Desculpe, realmente ficou confuso, acabei colocando a questão em uma atividade que não era da minha dúvida.

Na verdade eu estava me referindo a atividade 1 da aula 2, desse mesmo curso. Link: https://cursos.alura.com.br/course/asp-net-core-web-api/task/44601

Aqui é criado uma pasta API, onde simplesmente são criados os métodos e ao compilar o sistema as rotas já estão prontas. Mas não consegui entender com que a aplicação conseguiu "entender" oque tinha nessa pasta API.

Então Diego, neste caso foi criado a pasta Api e dentro dela um controller novo (LivrosController), que tem um nome diferente do controller antigo (LivroController).

O que ele fez depois disso foi adicionar o método que retorna o objeto JSON no método novo. Mas você reparou que ele mudou a rota para Livros/Recuperar/1009?

Isso quer dizer que a rota está pegando um controller de nome Livros e usando a action Recuperar, com um objeto de id 1009. Meio que não importa de onde está pegando esse controller, mas foi encontrada uma classe de nome LivrosController e isso bastou para o servidor.

É uma boa prática manter os controllers dentro da pasta que indica que tipo de classe ela é, mas não é uma regra, tanto que depois terão algumas mudanças nessa estrutura de pastas.

Mas na pasta Api tem tudo que é necessário para a rota Livros/Recuperar/1009 funcionar. Tem um controller, tem uma action e essa action recebe um id como parâmetro e depois das verificações retorna um Json.

Então se eu chamar a pasta de "Abacaxi" ou colocar em qualquer outro lugar da estrutura. O servidor vai entender?

solução!

Neste caso funcionaria sim. O que normalmente dá problema é em relação as Views ou quando é especificado algum caminho, e no caso de controllers, eles deve ser identificados com o sufixo controller. Mas no geral se é para usar uma classe, desde que ela esteja dentro dos assemblies, a classe será usada.

Mas na verdade, essa separação foi feita porque haverão mudanças neste projeto. E é muito interessante manter os arquivos nas pastas corretas, porque fica mais fácil para a manutenção ou evolução do projeto.