@freeg0r
.. some dude ..

Может ли микросервис based on REST API вызывать другой микросервис based on SOAP API?

1. Это возможно только если каждая сторона имеет клиента, способных к взаимодействию друг с другом.
2. SOAP API это про Web Services ,а не про Microservices.
3. Это возможно только если Decoding-Encoding на обоих сторонах будет одинаковый
4. Это возможно только если на обеих сторонах используется одинаковая Decoding-Encoding library (например JAX API имеет для SOAP: JAXB, и для REST: JAX-RS). Но если использовать разные Decoding-Encoding library, то не сработает
  • Вопрос задан
  • 451 просмотр
Решения вопроса 1
@galliard
Может ли микросервис based on REST API вызывать другой микросервис based on SOAP API?

Да.

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

Да. Но взаимодействие редко будет двусторонним. Обычно один из сервисов будет клиентом, то есть посылать запрос, а второй сервером, то есть обрабатывать его. Соответственно клиент (то есть программная компонента, формирующая запрос) нужна будет тому, сервису, который будет запрос посылать. Для обработки запроса клиент не нужен. (тут я применил слово "клиент" в двух разных смыслах, надеюсь не запутаешься)

2. SOAP API это про Web Services ,а не про Microservices.
В 99.99% да. Microservices - это про количество функционала у программы. SOAP API - это про интерфейс программы.

Вообще SOAP - это просто правила формирования XML. То есть если ты карандашом на бумаге напишешь XML, свернешь этот листок и отдашь его своему другу, который его проглотит, и поедет, например, к твоей девушке, там просрётся, вытащит из своего говна этот листочек, и отдаст ей - то это тоже будет общение по SOAP протоколу. Главное - чтобы XML была сформирована по определенным правилам.

Но чаще всего в качестве транспорта данных используют не желудок своего друга, а HTTP протокол.

Это возможно только если Decoding-Encoding на обоих сторонах будет одинаковый

Правила Decoding-Encoding регулируются стандартами, обе стороны обязаны их соблюдать.

Это возможно только если на обеих сторонах используется одинаковая Decoding-Encoding library (например JAX API имеет для SOAP: JAXB, и для REST: JAX-RS). Но если использовать разные Decoding-Encoding library, то не сработает

Стороны могут быть реализованы даже на разных языках программирования, на их общение это никак не повлияет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@stratosmi
Может и это вообще не проблема (кроме производительности).
Все заморочки - высосаны из пальца.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы