🚧 «Можно ваш API? Нельзя, но можно!»: История про gateway, который никто не хотел давать
Однажды мне понадобилось получать из своего кода данные из сервиса соседней команды. «Легко! — подумал я. — Попрошу их API». Но оказалось, что это начало квеста под названием «дискоммуникация» или «противоречивые требования», выбирайте по настроению.
🔹 Шаг 1: Руководитель vs Разработчик
Я написал в их чат: — Я: Привет! Мне хотелось бы получать от Вас клиента, какой апишкой я могу это сделать из своего сервиса ? — Руководитель команды: Наш сервис нельзя использовать напрямую — только через общий сервис-шлюз для нашего домена! Иначе нарушим архитектуру — Разработчик из их команды: Да берите API нашего внутреннего сервиса. У нас же есть ручка /internal/user-data
Итог: Мне дали API, который «нельзя использовать», но «можно»
🔹 Шаг 2: Gateway, которого нет
Что такое сервис-шлюз ? Это некий сервис, выступающий единой точкой входа в определенный домен. Но, есть одно но, так как этот сервис выступает проксей, он может: - Иметь название API методов, отличные от названий в исходном сервисе - Переопределять метод, сохраняя название - Не изменять ни сам метод, ни его название
Конечно же понять это, когда перед тобой один лишь swagger не удастся, блэк бокс он и в Африке блэк бокс
Мне повезло, вскоре в разговор вошел еще один разработчик и дал мне необходимый метод из gateway, подтвердив, что это то, что я искал
🔹 Почему так вышло?
Разные цели: - Руководитель хотел правильную архитектуру - Разработчик стремился закрыть задачу быстрее.
💡 Вывод:
Коммуникация в больших компаниях — это квест, где много сервисов, много ответственных и, соответственно, много дискоммуникаций. Если вы в чем-то не уверены - не бойтесь призвать к дискуссии более опытных коллег, ведь главное - результат и чем быстрее мы до него доберемся, тем лучше всем. TTM вещь такая 😇
А приходилось ли вам встречать дискоммуникацию в рабочих вопросах?
✈️ Присоединяйся в наше тг сообщество, там больше интересных постов про python, AQA и It
· 14.06
Все конечно зависит от того, зачем именно тебе апи смежной команды. Но в 90% случаев тебе нужно в сервис ходить именно через проксю. Причём желательно через балансировщик, а не на прямую в кластер. Так что правильно тебе лид сказал.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 14.06
Момент спорный, тут двояко. Балансировщики стоят на всех сервисах, независимо от того гейтвей он или конец. В любом случае ходить напрямую в под это то еще извращение )) А вот воспроизводить тестовые данные теми же ручками того же сервиса, в который ходит оригинальная админка, воспроизводя юзер флоу по мне было самым правильным решением. Но под гарантию, что это лишь прокся, без лишней логики, я согласен и на гейтаей. Тут основная боль в дискомуникации. Потратить половину рабочего дня из-за несогласованности между различными лицами - это грустненько. Запахло бюрократией, а хотелось чтобы летним воздухом после дождя )
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 14.06
“Ходить в под то ещё извращение”… Тут тоже двояко. К примеру если это е2е авто-тесты, которые тестят кластер непосредственно после выкладки. То это единственно верное решение. Но я не про смежников, конечно, а про свои сервисы.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён