У меня возникли серьезные проблемы с тем, как HATEOAS и Microservices могут сосуществовать.HATEOAS и Microservices
Давайте рассмотрим пример:
Допустим, у нас есть корзина ресурса. И нам нужно положить в него снимки продуктов, например. идентификатор продукта, цена продукта; моментальный снимок текущей цены, когда элемент был добавлен в корзину, и, возможно, некоторые другие значения. Фактический прецедент не имеет значения, но просто для того, чтобы получить представление об этой проблеме.
Когда я раньше делал HATEOAS, я бы поместил ссылку в ресурс корзины покупок, которая ссылается на продукты или URL-адрес шаблона, который ссылается на определенный продукт.
Таким образом, клиент все еще может не знать URL-адреса ресурса.
Но в мире микросервиса служба не должна знать никаких других услуг. НАСКОЛЬКО МНЕ ИЗВЕСТНО.
Итак, как они могли работать вместе?
Моя интерпретация микросервисов заключается в том, что они никогда не могут ссылаться ни на что другое, кроме них, что в значительной степени будет ссылкой Self
.
Я нашел тот же вопрос, заданный в этих местах, например. https://groups.google.com/forum/#!topic/api-craft/YRkLFVY_zFc
Где используются решения, такие как «услуги макросов», которые используют все это вместе. Это не похоже на чистый способ решения проблемы.
[Редактировать]
Я нашел более хорошую информацию по теме: https://github.com/Netflix/eureka https://github.com/RestExpress/HyperExpress
Это кажется хорошо, когда есть какой-то инструмент augument ресурсы со ссылками, но это заставляет меня думать, где логика решения о том, какие ссылки должен иметь ресурс? В службе, которая предоставляет ресурс? В центральном реестре службы?
Почему строгость архитектуры влияет на вашу функциональность или бизнес-правила? Я думаю, что оба шаблона дизайна могут сосуществовать. Вы всегда будете получать зависимости между вашими услугами. – ra2085
Пожалуйста, проверьте ответ в этом вопросе: http://stackoverflow.com/questions/27790905/how-to-establish-relationships-between-spring-data-rest-spring-hateoas-based –
Пока есть какая-то приятная информация в эта ссылка, разве это не делает большой монолит из всего на информационном уровне? должен быть какой-то глобальный реестр, который _knows_, какие ресурсы принадлежат друг другу. –