Skip to content

Протоколы. 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% ненужное решение.