Нужна ли команда(mediator) без параметров в качестве аргумента в контроллере?
Есть api с использованием cqrs и mediator'а и возникает следующая дилема - нужно ли в контроллере оставлять "заглушку" команды, если в ней нет параметров? Не знаю, как объяснить, поэтому сразу к простому примеру.
1) Есть простая команда для авторизации на сайте
public partial class Login
{
public class Command : IRequest<TokenResponse>
{
public string Username { get; set; }
public string Password { get; set; }
}
}
В данной команде передаются имя пользователя и пароль, поэтому она само собой нужна в качестве аргумента метода. Данная команда вызывается в данном методе контроллера
[HttpPost(ApiRoutes.Identities.Commands.Login)]
public async Task<IActionResult> Login([FromBody] Login.Command command)
{
var result = await Mediator.Send(command);
return Ok(result);
}
2) Есть команда для обновления jwt-токенов
public partial class RefreshSession
{
public class Command : IRequest<TokenResponse>
{
}
}
Она совершенно пустая, т.к по данному пути в контроллер отправляется настроенная кука с рефреш токеном. Единственный смысл этой команды - дать понять медиатору, что дальше делать.
[HttpPatch(ApiRoutes.Identities.Commands.RefreshSession)]
public async Task<IActionResult> RefreshSession([FromBody] RefreshSession.Command command)
{
var result = await Mediator.Send(command);
return Ok(result);
}
Вопрос: если в команде нет никаких параметров, то лучше верхний вариант или нижний? Если использовать нижний, то часть api будет без команд, а другая с ними и может возникнуть путаница на мой взгляд.
[HttpPatch(ApiRoutes.Identities.Commands.RefreshSession)]
public async Task<IActionResult> RefreshSession()
{
var result = await Mediator.Send(new RefreshSession.Command());
return Ok(result);
}