Я только что занял новую позицию в контракте, где кодовая база - это система Drupal. Я в основном бэкэнд-разработчик Python / Django и не имею опыта работы с Druple. (Обратите внимание, я прочитал этот ответ: Джанго и Друпал)
Мне нужно будет выполнить интеграцию с устаревшей системой. Разработчик Drupal все еще работает там, поэтому может разработать то, что необходимо на стороне Drupal, но похоже, что мне нужно будет предложить архитектуру. Здесь важны две точки взаимодействия.
1) Перед тем, как данные поступят в базу данных (из внешнего источника, то есть перед запуском, данные формы не требуются), мои сценарии будут выполнять большую очистку и форматирование. Я предполагаю, что эта интеграция будет простой, потому что в настоящее время не выполняется код предварительной записи в базу данных. Поэтому я могу просто подключиться напрямую к экземпляру базы данных, который записывается в таблицы после того, как он прошел через мои сценарии.
2) Я буду создавать для сайта функции поиска и аналитики. Их нужно будет запускать в данных формы, т. Е. В реальном времени.
Какой была бы хорошая архитектура для достижения второй интеграции? Я считаю, что мне следует разработать конечную точку REST API. Drupal может отправлять запросы json или XML, а я могу вернуть ответ json или XML. Будет ли это работать на стороне Drupal? Есть ли лучший способ добиться интеграции? Я хотел бы попытаться сохранить сервисную ориентацию или, по крайней мере, модульную, чтобы клиент не получил полностью интегрированную систему на нескольких языках, которую он не может поддерживать в дальнейшем. Спасибо!
Не могли бы вы сообщить мне, какие дополнительные подробности помогут? Спасибо.
Что ж, например, работают ли обе системы с одной и той же базой данных или они полностью изолированы, если «функции поиска и аналитики для веб-сайта» должны быть частью функций сайта drupal (я предполагаю, что да, но ...) или просто BO часть (а затем, какие «запросы» должен отправлять drupal) и т. д. И т. Д.
Да, они будут совместно использовать базу данных, а поиск / аналитика будут функцией сайта. Тем не менее, установка базы данных master / slave может быть вариантом (у меня есть небольшая свобода). Я знаю, что, например, elasticsearch обычно поддерживает свой собственный индекс в синхронизации с первичной базой данных. Так, например, пользователь ищет x и выбирает некоторые фильтры, druple отправляет мне поисковый запрос с тегами фильтра, я выполняю поиск, возвращаю либо ответ, либо ссылку на ответ, и druple либо отображает ответ на пользователь или использует ссылку для быстрого поиска, а затем отображает ..
Drupal достаточно модульный, чтобы интегрировать функции расширенного поиска и аналитики, взгляните на добавленные модули, прежде чем добавлять туда python;)






Недостаточно подробностей для правильного ответа, извините. Но API-интерфейсы REST / json - это действительно верный способ разделения подсистем.