Какой опыт работы с RPC

«Какой опыт работы с RPC» — вопрос из категории Архитектура, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

RPC (Remote Procedure Call) — это протокол для вызова функций на удалённом сервере, как если бы они были локальными. В веб-разработке часто используется JSON-RPC или gRPC.

Пример с JSON-RPC:

async function fetchRPC(method, params) {
  const response = await fetch('https://api.example.com/rpc', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      jsonrpc: '2.0',
      method,
      params,
      id: 1
    })
  });
  return await response.json();
}

// Использование
fetchRPC('getUser', { id: 123 }).then(console.log);

Где применял:

  • Интеграция с бэкендом через JSON-RPC (например, Ethereum API)
  • Работа с gRPC в микросервисных архитектурах (часто через прокси типа gRPC-Web)
  • Оптимизация запросов, когда REST неэффективен

Особенности:

  • Строгая типизация в gRPC (прото-файлы)
  • Меньший оверхед по сравнению с REST
  • Сложнее в дебаге без инструментов вроде Postman