As convenções RESTful indicam o uso de substantivos no plural em vez de objetos no singular.
Qual é a convenção de pluralização para nomear controladores ASP.NET MVC,
ProductController
ou seja, ou ProductsController
?
As convenções RESTful indicam o uso de substantivos no plural em vez de objetos no singular.
Qual é a convenção de pluralização para nomear controladores ASP.NET MVC,
ProductController
ou seja, ou ProductsController
?
Respostas:
Alguns MVC Frameworks usam plurais, no entanto, os modelos de projeto MVC contêm um controlador chamado AccountController, sugerindo assim uma nomenclatura simples.
Não importa. Como a maioria das coisas na estrutura MVC do Asp.net, a escolha é sua. Não há convenções reais.
É minha opinião pessoal, mas o que importa é que você escolha um esquema e seja consistente!
Vou ter que discordar das respostas anteriores de usar plural ou singular e ser consistente. Cada controlador deve usar uma convenção diferente com base em se eles interagem com entidades únicas ou múltiplas. Especialmente porque o nome do controlador é usado por padrão na URL.
Enquanto os modelos de projeto usam singular (HomeController, AccountController), há apenas um Home e as ações de Conta operam apenas em uma única conta para a sessão. Não espero que os URLs de / homes acessem a página inicial, nem espero acessar / accounts para gerenciar as configurações da minha conta.
O HomesController plural iria trabalhar para um site imobiliário que tinha métodos relacionados à listagem e busca várias casas: / casas / New-listas.
UsersController
faz sentido se você projetar suas rotas como /api/users
(todos os usuários) e /api/users/{userId}
(único usuário)
/api/user/{userId}
faria tanto sentido, porém, você poderia argumentar que mesmo no caso de lidar com vários usuários, seu controlador reflete o tipo de entidade, portanto HomeController
, lidaria com entidades do tipo Home
, portanto /Home/{homeId}
e/Home/All-Homes/
Quando você adiciona um controlador usando o scaffolding MVC para uma entidade Entity Framework, VS2013 torna o nome do controlador plural, então eu sugeriria usar esse padrão que torna os controladores para entidades plurais.
ATUALIZAÇÃO: mudei de ideia. LouD está correto. Depende do contexto do controlador.