1
resposta

Porque o nome do Controller é carrinho?

Quando adicionamos o controller demos o nome dele de CarrinhoController, porém no momento de acessar ele através da URI utlizamos apenas carrinho. Qual a regra exatamente? É a palavra que vem antes de Controller sempre em minúsculo?

1 resposta

Olá, Adriano!

O sufixo "Controller" é omitido por convenção, justamente para não poluir a URI. É mais elegante ter uma url "api/carrinho/remover/3" do que "api/carrinhocontroller/remover/3".

O framework reconhece que após a palavra "api" virá o nome do controller por causa da configuração da rota do arquivo WebApiConfig.cs. Por exemplo:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

Aqui, temos a rota padrão, que aplicada à url "api/carrinho/remover/3" irá procurar em CarrinhoController a action (método) Remover com o parâmetro id. Caso ela seja encontrada, o framework invocará essa action.

Boa sorte e bons estudos!