Как мне создать это приложение поверх приложений для общения?

#web #architecture

#веб #архитектура

Вопрос:

В эти дни я нахожусь в ситуации, когда мне приходится внедрять для одного из моих курсов в колледже систему, которая должна действовать как гигантская оболочка для многих коммуникационных приложений, таких как Gmail, Facebook Messenger, возможно, даже WhatsApp.Проще говоря, у вас должен быть гигантский веб-интерфейс, в котором вы можете авторизовать Gmail, Messenger и использовать их сразу, когда это необходимо. Я подумываю о том, чтобы использовать REST API для управления пользовательскими службами, авторизованными OAuth2.Также я подумываю об использовании Node.JS и Express.js в бэкэнде и React.js в интерфейсе. Я нашел несколько полезных библиотек в npm, которые должны позаботиться о взаимодействии с задействованными API (https://www.npmjs.com/package/node-gmail-api этот, например), но я также сомневаюсь в этом подходе, например, я понятия не имею, как, например, уведомлять пользователя о входящих письмах или сообщениях. Я остро нуждаюсь в некоторых знаниях, так как забыл упомянуть, но я новичок в этой области. Подводя итог, на этот раз мой вопрос заключается в том, как бы вы внедрили такую инфраструктуру? Жизнеспособен ли мой подход или мне придется столкнуться с действительно трудными для преодоления препятствиями?

Ответ №1:

В качестве упражнения в колледже это был бы действительно забавный эксперимент, так что он определенно стоит того времени, которое вы хотите потратить на него. Однако, как только вы захотите добавить больше функций, сложность будет расти довольно быстро.

Вот несколько идей, которые вы можете придумать:

  • Совершенно очевидно, что ваша система не может выполнять больше функций, чем возможности, предоставляемые API коммуникационных приложений (например, вы не можете получать уведомления в gmail, если API не имеет такой возможности).
  • По этой причине вам следует внимательно изучить API и какие функциональные возможности они предоставляют. У них есть общедоступные документы, которые вы можете проверить: (API Gmail, API Facebook Messanger)
  • Некоторые приложения, с которыми вы хотите общаться, могут не иметь официального API (например, WhatsApp) — такие детали, которые вы определенно хотите знать с самого начала.
  • На основе анализа этих API-интерфейсов вы должны составить список требований к вашей системе, которые можно извлечь из всех API, например: уведомления о сообщениях, передача файлов, профили пользователей и т. Д.
  • Таким образом, вы точно знаете, какими возможностями должна обладать ваша система, и в конечном итоге вы не реализуете функцию, доступную только в 1 API из 4.
  • Кроме того, было бы немного сложно спроектировать вашу систему с точки зрения пользователя, потому что приложения имеют разные схемы использования — приложения для чата, куда сообщения поступают в режиме реального времени, и электронная почта, которая не является общением в режиме реального времени. В любом случае, это всего лишь деталь, суть вашего проекта — играть с этими API.

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