Сценарии API REST на стороне сервера

  • Автор темы SKS2
  • 35
  • Обновлено
  • 13, May 2024
  • #1
Всем привет, В настоящее время я изучаю React и Redux и хотел бы разработать свое приложение с использованием этих фреймворков. Однако у меня есть общий вопрос о взаимодействии клиента и сервера.

Я знаю, что когда клиент запрашивает некоторые данные, мы используем запрос GET для вызова API REST, который вернет некоторый ответ, который затем может быть обработан на стороне клиента.

Мой вопрос теперь в том,

если у Rest API нет ответа в базе данных, но сначала ему необходимо выполнить какой-то скрипт, например скрипт Python, как это можно сделать?

Например, представьте, что у меня есть клиентская часть, которая спрашивает пользователя, какой у него любимый музыкант.

Затем делается запрос Get, в котором сервер просит вернуть некоторые данные об этом музыканте.

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

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

SKS2


Рег
14 May, 2014

Тем
1

Постов
2

Баллов
12
  • 09, Jun 2024
  • #2
Если вы хотите, чтобы клиент, делающий запрос, ждал завершения внешнего процесса, вы можете взглянуть на веб-сокеты. https://www.websocket.org/aboutwebsocket.html

По сути, это то же самое, что и API для отдыха, но связь идет в обе стороны, так что сервер может отправлять запросы обратно клиенту. Таким образом вы можете отправить запрос на сервер.

Сервер обработает этот запрос, обработает некоторые внешние страницы и данные.

Как только сервер завершит работу, сервер может сообщить клиенту, что поиск информации завершен, и либо отправить информацию обратно, либо просто сообщить клиенту, что можно сделать новый запрос для получения фактической информации. Я использовал толкатель (https://pusher.com/

) в прошлом он действительно прост в использовании и бесплатен. Если вы используете стороннюю службу, вам не придется создавать собственный сервер, например Redis или RabbitMQ.
 

alexsons


Рег
01 Jan, 2011

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно