Я не был уверен, как назвать вопрос, но вот что мне нужно сделать, и я ищу несколько советов, как справиться с ним в архитектуре. Я - разработчик Java / Kotlin, очень хорошо знаком с Spring Boot и обладаю базовыми знаниями о интерфейсе в целом - просто чтобы вы знали мое происхождение. Вот поток моего нового приложения:

  1. пользователь получает сгенерированную ссылку с большим количеством параметров, которые он может щелкнуть в своем браузере
  2. когда он нажимает на эту ссылку, я хочу получить эти параметры в бэкэнде, выполнить несколько длинных внешних вызовов и вычислений API (до 10 секунд), а затем возвращать результаты один за другим (некоторые отправленные через веб-сокет или сервер события) и представить их в приложении SPA (желательно Реакция) с хорошо представленными результатами, чтобы он мог выбрать один из рассчитанных мной вариантов, заполнить некоторую форму и заплатить за нее.

Возможно, я запутался - я работал со многими разработчиками внешнего интерфейса, но я никогда не думал, как на самом деле «запустить» SPA, когда кто-то нажимает на какой-либо URL-адрес с параметрами, а затем обрабатывает все эти переданные параметры через бэкэнд.

Возможно ли то, что я только что написал, с React, отображаемым на стороне клиента, и Spring Boot в качестве бэкэнда? Или мне нужно использовать React на стороне сервера, потому что у меня есть этот статический URL с params? Может ли кто-нибудь уточнить, как я должен подходить к этому?

0
ohwelppp 7 Дек 2019 в 21:19

1 ответ

Обычно, когда SPA размещается в домене, веб-сервер будет настроен на перенаправление всех запросов по всем путям к корневому URL. Поэтому не имеет значения, по какому пути в вашем домене пытается получить доступ пользователь, SPA все равно будет загружен.

Затем в вашем React SPA вы проверяете window.location, чтобы найти путь и параметры в URL. Затем вы вызываете бэкэнд (скорее всего, в другом домене), отправляя ему параметры через веб-запрос. Затем он отправляет ответ со случайным ключом и продолжает запускать длительный процесс в фоновом режиме. Когда результаты приходят, они сохраняются глобально в словаре против случайного ключа (может быть в базе данных, может храниться в памяти, если вам нужен только один внутренний сервер). Затем на другой конечной точке API интерфейс React может опрашивать случайный ключ и получать текущий статус обработки, отображая его для пользователя.

0
James Ellis-Jones 7 Дек 2019 в 23:54