Что такое JSON-RPC?

«Что такое JSON-RPC?» — вопрос из категории Other, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

JSON-RPC (Remote Procedure Call) — это легкий протокол для удаленного вызова процедур, использующий JSON в качестве формата данных. Он позволяет клиенту вызывать методы на сервере, передавая параметры и получая результат в структурированном виде.

Основные компоненты запроса/ответа:

  • jsonrpc: Версия протокола (например, "2.0").
  • method: Имя вызываемого метода.
  • params: Параметры метода (объект или массив).
  • id: Идентификатор запроса для сопоставления ответа (может быть null для уведомлений).

Пример запроса и ответа:

// Запрос от клиента
{
  "jsonrpc": "2.0",
  "method": "calculateSum",
  "params": [5, 3],
  "id": 1
}

// Ответ от сервера (успех)
{
  "jsonrpc": "2.0",
  "result": 8,
  "id": 1
}

// Ответ от сервера (ошибка)
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32601,
    "message": "Method not found"
  },
  "id": 1
}

Где используется: Часто применяется в блокчейн-клиентах (Ethereum), внутренней коммуникации микросервисов, веб-сокетах и API, где не подходит REST. С точки зрения тестирования (QA) важно проверять валидность JSON-схемы запросов/ответов, коды ошибок, обработку неверных параметров и корректность бизнес-логики, скрытой за RPC-методами.