Межсервисное связывание для микросервисов HATEOAS

У меня есть несколько микросервисов, созданных с помощью Spring Boot, поэтому для развлечения я решил добавить к ним HATEOAS, чтобы помочь настроить межресурсное связывание. Кажется, это неплохо работает в конкретном проекте, но мне было интересно, есть ли хороший способ связать API. В качестве примера представьте, что у меня есть 3 службы:

Служба сведений о пользователе: Код:

/users/{userid}

Служба пользовательского календаря: Код:

/users/{userid}/appointments
/users/{userid}/appointments/{appointmentid}

Служба обмена сообщениями пользователей: Код:

/users/{userid}/messages
/users/{userid}/messages/{messageid}

Чтобы сделать это доступным для просмотра через API, было бы хорошо иметь ссылки с пользовательского ресурса на его встречи и сообщения. Точно так же было бы неплохо иметь обратные ссылки с этих ресурсов. Это все очень достижимо, когда у меня есть единый API со всем в пути к классам, где я могу написать такой код, как:

Код:

user.add(linkTo(methodOn(CalendarController.class).appointments(user.getKey())).withRel("appointments"))

Однако я не могу этого сделать, если CalendarController не находится в пути к классам службы, которую я сейчас использую.

Есть ли хороший/рекомендуемый способ создания ссылок на контроллеры, которых нет в текущем проекте?

Ссылка на весенние форумы


person keaplogik    schedule 10.11.2014    source источник
comment
у нас ТОЧНО такая же проблема. Мы подумали о том, чтобы иметь JAR-файл, определяющий пути, и совместно использовать его вместе с ресурсами, раскрывающими пути, и использовать API-интерфейсы, взаимодействующие друг с другом. оба решения имеют недостатки. Не могу дождаться, чтобы увидеть какие-либо ответы об этом   -  person Chris DaMour    schedule 12.11.2014
comment
Да так же здесь. Мы думаем о разработке собственного DSL для создания и обмена ссылками. В нашем случае ссылки будут переданы узлу зоопарка, чтобы службы могли затем запрашивать ссылки на другие ресурсы. Если Spring HATEOAS предложит решение сейчас или в ближайшем будущем, было бы неплохо в конечном итоге пойти по этому пути.   -  person keaplogik    schedule 12.11.2014
comment
Я думаю, мы спрашиваем об одном и том же. stackoverflow.com/questions/27790905/   -  person code    schedule 08.01.2015


Ответы (1)


Возможно, это немного сложнее, чем вы надеялись, но, как упоминалось здесь, это именно то, что Eureka для. Он также отлично интегрирован с новым проектом Spring Cloud.

person bvulaj    schedule 20.02.2015