Каков наилучший способ реализации проекта DDD/CQRS для веб-API, поскольку я до сих пор не совсем понимаю, как получить ответ при вызове другой службы из Интернета API. Я читал о наблюдаемых материалах Rx, но мне хотелось бы получить более четкое объяснение и простую ссылку на образец. Я использую стиль доменных событий Udi Dahan в ASP.NET Web API и Autofac для инъекций. Вот что я пытаюсь использовать события домена в веб-API в контроллере. Код, который я делаю, все работает.Разработка домена (для доменных событий) для веб-API ASP.NET
public class MyApiController : ApiController
{
// POST: api/myapi
public void Post([FromBody]string value)
{
DomainEvents.Raise(new HelloMessage(value));
}
}
Это вызывает обработчик событий:
public void HelloMessagesHandler : IDomainEventHandler<HelloMessage>
{
public void Handle(HelloMessage @event)
{
Log.Write($"Hello {@event.Value}");
{
{
Конечно название события HelloMessage следует использовать вездесущий язык, который будет более подходящим. Это простой пример, и это было легко.
Теперь я хотел назвать другое, допустим, услуги веб-API третьей части, которые отнимают много времени (от ответа). И как получить ответы и вернуться в MyApiController. По словам Уди Дахана, это не очень хорошая идея для непосредственного использования в обработчике. Например:
public void HelloMessagesHandler : IDomainEventHandler<HelloMessage>
{
private readonly IService _service;
public HelloMessagesHandler (IService service)
{
_service = service;
{
public void Handle(HelloMessage @event)
{
var response = _service.DoSomethingWithLongProcess(@event.Value);
// return response <-- to MyApiController
{
{
Мой вопрос:
- Как это сделать в простой и лучший способ?
- Как вернуть ответ от стороннего веб-API на MyApiController после того, как домен был поднят?
- Каков наилучший способ реализации DDD для проекта веб-API?
Спасибо в продвижении.
Спасибо за подсветку. Причина, по которой я показываю простой пример, состоит в том, что теперь мне нужно сделать фундаментальную информацию о том, как это сделать. Любой простой пример использования DDD в ASP.NET Web API с одним контроллером, возможно, с помощью ссылки или GitHub, был бы хорош для меня. –
DDD не имеет ничего общего с Web API. Вы будете вызывать методы уровня приложений из ваших контроллеров, но здесь нет ничего особенного в ASP.NET Web API. Попробуйте взглянуть на серию статей Джеффри Палермо об ОНИОНе с примерами на C# http://jeffreypalermo.com/blog/the-onion-architecture-part-2/, которые могут быть именно тем, что вам нужно. – IlliakaillI
Я знаю ASP.NET Web API, который использует DI/IoC, CQRS и т. Д. Я хотел бы узнать больше, используя концепцию DDD для Web API. Я не новичок, и я изучаю DDD для лучшей практики ASP.NET Web API. И нет, но не Лук для меня. Я хочу использовать DDD. –