Протоколы. To REST или не REST?
REST, WebSockets, JSON-RPC
Для новичка, конечно, удобнее начинать с REST
- запросы на сервер абы как.
Для более опытных, особенно, фулстеков, предлагаю взглянуть на JSON-RPC
WebSockets
удобен тем, что дает двунаправленную связь (сервер может посылать сообщения на клиент), но требует специального программного обеспечения на бэкенде.
Почему JSON-RPC?
После опыта с JSON-RPC общение с бэком обычно уже никогда не бывает прежним.
Он дает порядок, четкость, строгость и вместе с тем гибкость. Сильно упрощает и делает понятным код как на фронте, так и на бэке.
Кроме того, JSON-RPC - де-факто стандарт для Web 3.0 коммуникаций.
Вот две мои статьи на эту тему - Популяризация JSON-RPC (часть 1) и Популяризация JSON-RPC (часть 2)
Вариант TypeScript реализации фронтэнд api сервиса на JSON-RPC - здесь
При использовании JSON-RPC
переход на WebSockets
или другие транспортные протоколы не вызовет никаких трудностей из-за унификации формата сообщений.
Как организовать реконнект WebSocket соединения на фронте?
Нужна шина, или Еvent bus
, которая будет работать как прокси для приходящих сообщений.
Можно использовать mitt.
Что такое GraphQL?
Сложная штука, попытка перевести язык запросов SQL для клиент-серверных запросов в интернете.
Имеет довольно специфичное применение, преимущественно у сторонних поставщиков данных через API.
Для своего фулстек приложения - на 99% ненужное решение.