Создание веб-приложения, которое легко взаимодействует с другим веб-приложением?

#angularjs #web-applications #struts2 #flask #communication

#angularjs #веб-приложения #struts2 #flask #Информационные материалы

Вопрос:

Я пытаюсь разработать веб-приложение, которое может взаимодействовать с другим веб-приложением. App1 — это приложение, разработанное с использованием Angular.js и распорки 2. Единственной целью этого приложения является выполнение поисковых запросов в нескольких базах данных и возврат информации о продуктах для просмотра пользователем. App2, текущее приложение, которое я разрабатываю, будет разработано с использованием Angular.js и Колба / Питон. Это приложение будет отвечать за хранение продуктов, которые пользователь выбирает в корзине покупок, и позволяет пользователю совершать покупки.

Я застрял в вопросе о том, как заставить два приложения взаимодействовать (передавая регистрационную информацию, идентификаторы выбранных элементов и т. Д.) Друг с другом.

Я попытался передать информацию через перенаправление URL (http://www.example.com/?myVar=someData amp; …) но Angular доставляет мне много хлопот, чтобы попытаться обойти это. Даже если я смогу заставить это работать, я думаю, это было бы небезопасно, поскольку данные, которые пользователь не должен знать, будут отображаться в URL.

Моей второй мыслью было бы каким-то образом получить доступ к данным сеанса из App1 в App2, но это также может привести к проблемам безопасности.

Моя последняя мысль была бы о том, как сделать вызов App1, который возвращает объект json, который можно проанализировать в App2, но я не совсем уверен, как передать эту информацию.

Как я могу заставить два приложения взаимодействовать друг с другом?

Спасибо за вашу помощь

Ответ №1:

На мой взгляд, это не совсем в рамках AngularJS. Тем не менее, я считаю, что лучшая и наиболее приемлемая практика взаимодействия между веб-приложениями в наши дни — это веб-службы RESTful.

Это не маленькая тема, но как только вы поймете ее концепцию, вы сможете использовать ее на любом языке программирования, поддерживающем веб-приложения (Java, который, я предполагаю, вы используете из-за struts, имеет несколько библиотек REST, я предпочитаю Джерси, но это только я).

Это также отличный способ использовать интерфейс Angular для взаимодействия с собственным серверной частью. Вся структура Angular $resource построена вокруг идеи использования RESTful services.

Посмотрите на эту ссылку в Википедии, чтобы получить краткий обзор того, что делает службу RESTful: http://en.wikipedia.org/wiki/Representational_state_transfer#Applied_to_web_services

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

Надеюсь, это поможет вам начать. Дайте мне знать, если вам нужна дополнительная информация или указания.

Комментарии:

1. Спасибо, это определенно помогло мне начать. На самом деле я придумал решение, которое я изучу, передавая данные в URL. В принципе, я могу зашифровать данные вместе и передать их другому приложению. Секретный ключ может быть общим в файлах свойств / настроек двух приложений. Еще раз спасибо за помощь

2. Нет проблем. Как я уже сказал, не стесняйтесь задавать мне вопросы. Обучение REST будет окупаться еще долгое время в плане карьеры.