Можно ли использовать сервис Hypermedia Driven RESTFul в мире микросервисов?

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

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

С точки зрения разработки REST API, я много читал об использовании гипермедиа и о том, как позволить клиенту обнаруживать ресурсы путем включения соответствующих операций в качестве ссылок в ответ REST ( Talk Stefan Tilkov). Если это так, то когда моя Служба изменений возвращает ответ, имеет смысл включить ссылку на Службу отмены, которую клиент может использовать для отмены. Как я могу добиться этого, когда Cancel и Change - это два разных микросервиса, которые не знают друг о друге? Или мои ограниченные контексты неверны?

Мы теряем эти возможности связывания гипермедиа (или это становится все труднее) при использовании микросервисов в целом?

Спасибо Кей

1 ответ

В HATEOAS URI обнаруживаются (и не документируются), поэтому их можно изменять. То есть, если они не являются точками входа в вашу систему ( крутые URI, единственные, которые могут быть жестко запрограммированы клиентами) - и у вас их не должно быть слишком много, если вы хотите развить остальную часть структура URI вашей системы в будущем. На самом деле это одна из самых полезных функций REST.

Для остальных не-Cool URI они могут изменяться с течением времени, и ваша документация API должна указывать на то, что они должны быть обнаружены во время выполнения через обход гипермедиа.

При этом в вашем сценарии эта ссылка будет Cool URI, а не относительно текущего API (поскольку она может находиться на другом компьютере / домене и т. Д.). Если вы не используете какой-либо инструмент обнаружения, вам придется жестко закодировать эту ссылку и таким образом потерять преимущество возможности обнаружения.

Другие вопросы по тегам