Что такое поток событий в API отдыха и зачем он нам нужен? - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь разработать api rest впервые. И ищет петлевые ссылки, которые используют поток изменений для таких ресурсов, как /resources/change-stream, с помощью методов GET и POST.

Я посетил это сообщение , в котором указаны различия между оставшимся API и потоковым API.

В то время как loopback предоставляет его в остальных API, я думаю. Что это такое и что оно делает. Не могли бы вы объяснить это мне так, как вы разъясняете мне (для шестилетнего ребенка). Потому что я впервые разрабатываю REST API самостоятельно. Итак, я хотел бы понять шаг за шагом, если это возможно, как то, что я должен иметь в почтальоне. Если бы я использовал URL-адрес как '/api/resources/change-stream?_format=event-stream вместе с application/json content-type или просто /api/resources/change-stream, все будет в порядке.

Было бы хорошим примером, если бы вы могли привести мне какой-то реальный пример, чтобы я мог разработать его, пытаясь в своем собственном приложении.

PS: Для меня совершенно нормально, какой бы язык (Node.js, Python, Ruby, PHP) вы не выбрали, чтобы дать ответ с некоторыми примерами.

1 Ответ

1 голос
/ 09 мая 2019

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

Поскольку документ на другом конце API по-прежнему (вероятно) является документом JSON, вы должны сохранитьэтот мим.Тем не менее, вы не ограничены в том, что вы можете отправить обратно как тип события;если вы хотите отправить обратно XML или YAML, сделайте это и установите MIME.«Поток» - это всего лишь механизм соглашения.

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

В качестве альтернативы, длинный опрос, вероятно, должен быть заменен чем-то вроде WebSocket., поскольку он предоставляет гораздо более простой API (на мой взгляд) и не выглядит таким же хакерским, как длительный опрос.

Если вы пытаетесь спросить, "как мне сказать потребителю RESTful, чтомой API является «потоковым» API », в этом нет никакого смысла.Опять же, что касается REST, конечная точка https://example.com/api/events/ относится к документу типа JSON, который сильно изменяется, требует много времени для получения и часто «терпит неудачу» (если генерируемые вами события не запускают много).

...