одинаковые проверки в некоторых функциях контроллеров
возник вопрос: возможно ли каким либо образом сделать общую логику на некоторые контроллеры и функции внутри контроллера?
К примеру есть несколько ссылок:
api/user.stats
api/reaction.add
api/reaction.edit
api/reaction.del
и так далее.
и к примеру все они в аргументах принимают поля: key, id(api/reaction.add?key=...&id=...),
вопрос: могу ли я не писать в каждой функции контролера(ControllerBase) проверки на 2 этих аргумента, а где-то один раз написать, чтобы эти функции автоматический в первую очередь проверялись на эти данные?
пример проверки:
public string stats(string key, int id)
{
// проверка существует ли папка пользователя
if (!Directory.Exists($"путь\{id}")
return "{\"error\": \"Пользователь не создан\"}";
// проверка ключа
if (File.ReadAllText($"путь\{id}\key.txt") != key)
return "{\"error\": \"Не верный ключ\"}";
...
}
Ответы (1 шт):
Как вариант сделать атрибут, в котором будет идти проверка Request.QueryString нужных параметров. Далее на нужные методы повышать данный атрибут. При некорректных параметрах возвращать BadRequest. Если это .Net Core, то можно и Middleware сделать.