2014-11-10 1 views
7

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

Реквизиты пользователя службы: Код:

/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 является а не на пути класса сервиса, который я сейчас нажимаю.

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

Реферировано из spring forums

+0

у нас ТОЧНАЯ такая же проблема. Мы рассмотрели наличие JAR, который определяет пути и общий доступ к ним, а также ресурсы, которые раскрывают пути и имеют API-интерфейсы друг с другом. оба решения имеют недостатки. Не могу дождаться, чтобы увидеть какие-либо ответы об этом –

+0

Да, здесь. Мы думаем о разработке собственной DSL для создания и обмена ссылками. В нашем случае ссылки будут разделяться узлу zookeeper, после чего службы могут запрашивать ссылки на другие ресурсы. Если Spring HATEOAS предлагает решение сейчас или в ближайшем будущем, было бы неплохо следовать этому пути в конечном итоге. – keaplogik

+0

Думаю, мы спрашиваем об одном и том же. http://stackoverflow.com/questions/27790905/how-to-establish-relationships-between-spring-data-rest-spring-hateoas-based – code

ответ

1

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

Смежные вопросы