¿Qué es JSON-RPC? Protocolo, Ejemplos, Comparación REST

JSON-RPC es un protocolo RPC stateless ligero usando JSON para request/response. Methods + params + id; ampliamente usado en blockchain (Ethereum).

¿Qué es JSON-RPC?

JSON-RPC es un protocolo stateless ligero Remote Procedure Call (RPC) que usa JSON tanto para payloads request como response. La versión actual es JSON-RPC 2.0, finalizada en 2010. El protocolo es transport-agnostic — puede correr sobre HTTP, WebSocket, TCP — y es intencionalmente más simple que alternativas como SOAP o gRPC.

El uso contemporáneo más grande es en ecosistemas blockchain (los nodes Ethereum se comunican exclusivamente via JSON-RPC), pero también es común en microservicios internos, tooling IDE (Language Server Protocol) y IoT.

Estructura request JSON-RPC

{
  "jsonrpc": "2.0",
  "method": "subtract",
  "params": [42, 23],
  "id": 1
}
  • jsonrpc — versión protocolo, siempre "2.0".
  • method — la función a llamar en el server.
  • params — argumentos.
  • id — ID único generado por cliente.

Response:

{
  "jsonrpc": "2.0",
  "result": 19,
  "id": 1
}

JSON-RPC vs REST vs gRPC

AspectoJSON-RPCRESTgRPC
EstiloRPCResource (CRUD)RPC
TransportCualquieraSolo HTTPHTTP/2
PayloadJSONJSON, XMLProtocol Buffers
SchemaNingunoOpenAPI (opcional).proto (mandatorio)
StreamingLimitadoLimitadoBidireccional nativo
Soporte browserLimitado (gRPC-Web)

Casos uso comunes JSON-RPC

  • Nodes blockchain. Ethereum, Bitcoin exponen JSON-RPC.
  • Microservicios internos.
  • Language Server Protocol (LSP).
  • APIs WebSocket.
  • Devices IoT.

Batch requests

[
  {"jsonrpc": "2.0", "method": "sum", "params": [1,2,4], "id": 1},
  {"jsonrpc": "2.0", "method": "subtract", "params": [42,23], "id": 2}
]

Códigos error estándar

CódigoMensajeSignificado
-32700Parse errorJSON inválido recibido
-32600Invalid RequestNo es objeto Request válido
-32601Method not foundMethod no existe en server
-32602Invalid paramsParámetros method inválidos
-32603Internal errorError interno JSON-RPC

Pros y cons

Pros

  • Simple.
  • Transport-agnostic.
  • Payloads JSON.
  • Soporte batch.

Cons

  • Sin lenguaje schema estándar.
  • Sin streaming nativo.
  • Capa HTTP ignorada.
  • Menos tooling que REST/gRPC.

FAQ: JSON-RPC

¿Se sigue usando JSON-RPC?

Sí — heavily en blockchain, Language Server Protocol y microservicios internos.

¿JSON-RPC vs REST: cuál es mejor?

REST para APIs resource-CRUD. JSON-RPC para APIs action-oriented.

¿JSON-RPC usa códigos status HTTP?

A menudo devuelve 200 incluso para errores (info error en body JSON).

¿Cómo autentico JSON-RPC?

Como cualquier API HTTP: bearer tokens, API keys, OAuth.

¿Cuál es la diferencia entre JSON-RPC y JSON-RPC 2.0?

2.0 agregó campo versión explícito, mejor error handling, parámetros named.

¿JSON-RPC puede comunicación bidireccional?

Sobre WebSocket sí — server puede pushear notifications al cliente.

Testea APIs JSON-RPC at scale con LoadFocus

Si estás load-testeando endpoints JSON-RPC (especialmente blockchain nodes o servicios RPC internos), LoadFocus corre scripts JMeter y k6 desde 25+ regiones con hasta 12.500 VUs. Regístrate en loadfocus.com/signup.

¿Qué tan rápido es tu sitio web?

Mejora su velocidad y SEO sin problemas con nuestra Prueba de Velocidad gratuita.

Prueba de velocidad de sitio web gratis

Analice la velocidad de carga de su sitio web y mejore su rendimiento con nuestro comprobador de velocidad de página gratuito.

×