Ролевая бизнес-логика в ASP.NET Core Web API? - PullRequest
0 голосов
/ 14 марта 2019

Я пишу обычный веб-API с архитектурой N-Layer. Пока у меня есть уровень доступа к данным, уровень бизнес-логики (реализован в классах Service) и уровень приложений. У меня 2 роли - Admin и User (в будущем может быть больше). У меня вопрос - в каком месте я должен обращаться с бизнес-логикой для конкретной роли?

Например, конечная точка /sessions по запросу GET должна возвращать все записи в базе данных, если пользователь Admin ИЛИ только те, которые принадлежат пользователю, если пользователь в роли User. Также по запросу PATCH User должен иметь возможность изменять только свои записи, а Admin может изменять любые. И если в будущем будут созданы другие роли, например, Manager, он должен видеть только записи пользователей, которыми он управляет.

Я обнаружил подход к службам для конкретных ролей с фабрикой: https://softwareengineering.stackexchange.com/questions/278864/role-based-rest-api, также до того, как проверял роль внутри своих служб на уровне бизнес-логики. Или, может быть, мне следует пересмотреть структуру моих конечных точек?

...