Вопрос по реализации контроллеров в ASP.NET Core
Возник такой вопрос. У меня допустим сайтом будут пользоваться 3 вида пользователей, один из них администратор. Есть у меня например контроллер администратора: AdministratorController. Администратор например много вещей может делать, например CRUD абонементов. Так вот: правильно обращаться к репозиторию абонементов в контроллере администратора, и потом создавать в этом же контроллере метод что-то типа CreateAbonement и там уже внутри работать. Или же создавать отдельно контроллер абонементов, в нем создавать метод по созданию, но только указать параметр Authorize с указанием роли администратора? То есть мы под каждую сущность создаем свой контроллер, или контроллеры создаем под сущности "пользователей"?
Ответы (1 шт):
Если вы делаете REST API, то контроллеры обязательно создаются под сущности. Нужно сделать AbonementController и в нем реализовать метод POST для создания экземпляра. Этот метод должен быть разрешен только администратору.
Если вы делаете просто RPC, то, теоретически, можно сделать контроллер администратора и в нем реализовать метод CreateAbonement, но это может привести к тому, что контроллер администратора разрастется и будет тяжел в поддержке, поэтому в такой модели тоже более удобно делать контроллеры по сущностям, либо по группам активностей с сущностью, например в вашем случае для RPC я бы сделал контроллер AbonementManagementController.
Тут полезная статья от Amazon.