¿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
| Aspecto | JSON-RPC | REST | gRPC |
|---|---|---|---|
| Estilo | RPC | Resource (CRUD) | RPC |
| Transport | Cualquiera | Solo HTTP | HTTP/2 |
| Payload | JSON | JSON, XML | Protocol Buffers |
| Schema | Ninguno | OpenAPI (opcional) | .proto (mandatorio) |
| Streaming | Limitado | Limitado | Bidireccional nativo |
| Soporte browser | Sí | Sí | Limitado (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ódigo | Mensaje | Significado |
|---|---|---|
| -32700 | Parse error | JSON inválido recibido |
| -32600 | Invalid Request | No es objeto Request válido |
| -32601 | Method not found | Method no existe en server |
| -32602 | Invalid params | Parámetros method inválidos |
| -32603 | Internal error | Error 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.
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus — la misma plataforma que potencia todo lo que acabas de leer.