Как получить доступ к доменным моделям микросервисов в контроллере web api - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть. Чистое ядро ​​микросервисного проекта. Архитектура идет как ниже 1. Заявочный проект 2. Сервисный проект (проект WebApi) 3. Микросервисный проект 4. Интерфейсный слой

Поскольку данные, код и конфигурация должны быть внутри микросервисов, я добавил все модели предметной области в проект микросервисов. Но я получаю доступ к этим микросервисам с помощью контроллера в проекте WebApi через интерфейс, использующий класс прокси-службы.

Итак, мой вопрос: если мой микросервис вернет объект Employee, как мне добавить его в качестве типа возврата в моем контроллере. Поскольку контроллер имеет зависимости только от интерфейса проекта, а не от проекта микросервиса, я не могу получить доступ к модели домена. Я заканчиваю тем, что создаю другую модель предметной области в проекте webapi или использую динамический тип переменной в качестве возвращаемого типа.

Также swagger не возвращает формат объекта модели, так как я использовал динамическую переменную.

Есть ли лучший способ сделать это ??1009*

1 Ответ

0 голосов
/ 27 апреля 2018

Можем ли мы с уверенностью предположить, что и проект web api, и проект microservices являются службами без сохранения состояния?

Разве вы не можете создать DTO в интерфейсном проекте и заставить проект microservices их вернуть?

Но мне интересно, если API - это просто шлюз для службы без сохранения состояния, зачем вообще беспокоиться о службе без сохранения состояния? Я бы положил эту логику в API. Я имею в виду, какая выгода в противном случае?

Или поместите конечную точку http в службу микросервисов и удалите прослушиватель удаленного взаимодействия. Таким образом, ваш интерфейс может напрямую общаться со службой, и вы можете удалить контроллеры API (микросервис фактически становится вашим API).

...