Rest-Api - Подумайте о ресурсах.
Этот вопрос касается того, как вы думаете о ваших rest-api (если вы его создаете). Существуют различия между rest api, web apis и SOAP, но я предполагаю, что вы создаете rest-api.
В случае универсального c web api, вам придется выберите способ разбить ваше приложение на несколько контроллеров.
Проверьте руководство Microsoft Rest-Api. Самый важный раздел из этого:
Организация API вокруг ресурсов
Итак, в вашем примере давайте предположим, что ваш ресурс - это сеанс пользователя. Тогда у вас может быть UserController
с соответствующими глаголами, где вы можете создать (POST) обновление (PUT / PATCH), удалить (DELETE) или получить (GET) ресурс User
.
Теперь вам нужно сеанс, не так ли? Или Знак. Легко:
TokenController
и действие, конечно (POST) - Создать токен с именем пользователя и паролем
SessionController
- Создать токен.
Таким образом, вы минимизирует действия. В качестве дополнения, если User
имеет Accounts
, то создайте новый контроллер с именем UserAccountsController
, который будет сервером по URL для отдыха, например users/1/accounts GET
Уровень служб
Имея уровень услуг, где у вас есть все бизнес-логики c - это путь к go. Помня о том, что SRP (принцип единой ответственности), единственная и единственная обязанность Контроллера, состоит в том, чтобы контролировать поток кода для создания ответа Http и координировать действия для этого.
Фактическая бизнес-логика c должно быть реализовано на уровне сервиса. Таким образом, у вас будут контроллеры, которые даже с несколькими действиями будут весьма минимальными (4/5 строк на действие).
Наследование пользователя
Общая логика c между контроллерами может быть достигается с помощью MyApiController: ControllerBase
, который содержит код многократного использования.
НЕ используйте классы Helper. Это антипаттерн. Утилиты - зло - отличная статья по этому вопросу.