Вы не ожидаете асинхронного вызова при публикации, поэтому ничего не работает.
Вам нужно изменить свой контроллер на:
[Route("api/[controller]")]
[ApiController]
public class BookController : ControllerBase
{
private readonly IBus _bus;
public BookController(IBus bus)
{
_bus = bus;
}
public Task Post(CreateBookCommand createBookCommand)
=> _bus.Publish<CreateBookCommand>(createBookCommand);
}
Это будет работать для однострочника. Если у вас будет больше кода, вам нужно явно дождаться:
public async Task Post(CreateBookCommand createBookCommand)
{
// code
await _bus.Publish<CreateBookCommand>(createBookCommand);
}
Обратите внимание, что команды обычно отправляются, а не публикуются.
Я также надеюсь, что для службы, в которой размещаются ваши потребители, настроена конечная точка , поскольку вы не передали код запуска для этой службы.