Was ist JSON-RPC? Protokoll, Beispiele, REST-Vergleich
JSON-RPC ist ein leichtgewichtiges stateless RPC-Protokoll mit JSON für Requests/Responses.
Was ist JSON-RPC?
JSON-RPC ist ein stateless, leichtgewichtiges Remote-Procedure-Call-(RPC)-Protokoll, das JSON für sowohl Request- als auch Response-Payloads nutzt. Die aktuelle Version ist JSON-RPC 2.0, finalisiert 2010. Das Protokoll ist transport-agnostic — kann über HTTP, WebSocket, TCP oder sogar Named Pipes laufen — und ist absichtlich einfacher als Alternativen wie SOAP oder gRPC.
Die größte zeitgenössische Nutzung ist in Blockchain-Ökosystemen (Ethereum-Nodes kommunizieren ausschließlich via JSON-RPC), aber es ist auch häufig in internen Microservices, IDE-Tooling (Language Server Protocol) und IoT.
JSON-RPC-Request-Struktur
{
"jsonrpc": "2.0",
"method": "subtract",
"params": [42, 23],
"id": 1
}- jsonrpc — Protokoll-Version, immer "2.0".
- method — die Funktion zum Aufrufen am Server.
- params — Argumente (Array für positional, Object für named).
- id — client-generierte eindeutige ID. Weglassen für Notification-Calls.
Response:
{
"jsonrpc": "2.0",
"result": 19,
"id": 1
}JSON-RPC vs REST vs gRPC
| Aspekt | JSON-RPC | REST | gRPC |
|---|---|---|---|
| Style | RPC | Resource (CRUD) | RPC |
| Transport | Any | HTTP only | HTTP/2 |
| Payload | JSON | JSON, XML | Protocol Buffers |
| Schema | Keines | OpenAPI (optional) | .proto (mandatory) |
| Streaming | Limitiert | Limitiert | Native bidirectional |
| Browser-Support | Ja | Ja | Limitiert (gRPC-Web) |
Häufige JSON-RPC Use Cases
- Blockchain-Nodes. Ethereum, Bitcoin exposieren JSON-RPC.
- Interne Microservices.
- Language Server Protocol (LSP).
- WebSocket-APIs.
- IoT-Devices.
Batch-Requests
[
{"jsonrpc": "2.0", "method": "sum", "params": [1,2,4], "id": 1},
{"jsonrpc": "2.0", "method": "subtract", "params": [42,23], "id": 2}
]Standard-Error-Codes
| Code | Message | Bedeutung |
|---|---|---|
| -32700 | Parse error | Invalides JSON |
| -32600 | Invalid Request | Kein valides Request-Objekt |
| -32601 | Method not found | Method existiert nicht |
| -32602 | Invalid params | Invalide Method-Parameter |
| -32603 | Internal error | Interner JSON-RPC-Error |
Pros und Cons
Pros
- Einfach.
- Transport-agnostic.
- JSON-Payloads.
- Batch-Support.
Cons
- Keine Standard-Schema-Sprache.
- Kein natives Streaming.
- HTTP-Layer ignoriert.
- Weniger Tooling als REST/gRPC.
FAQ: JSON-RPC
Wird JSON-RPC noch genutzt?
Ja — heavily in Blockchain, Language Server Protocol und internen Microservices.
JSON-RPC vs REST: welches ist besser?
REST für Resource-CRUD-APIs. JSON-RPC für action-oriented APIs.
Nutzt JSON-RPC HTTP-Status-Codes?
Oft returnt 200 auch bei Errors (Error-Info im JSON-Body).
Wie authentifiziere ich JSON-RPC?
Wie jede HTTP-API: Bearer-Tokens, API-Keys, OAuth.
Was ist der Unterschied zwischen JSON-RPC und JSON-RPC 2.0?
2.0 fügte explizites Version-Field hinzu, verbessertes Error-Handling, Named-Parameter. Immer 2.0 für neue Entwicklung nutzen.
Kann JSON-RPC bidirektionale Kommunikation?
Über WebSocket ja — Server kann Notifications zum Client pushen.
JSON-RPC-APIs at Scale mit LoadFocus testen
Wenn Sie JSON-RPC-Endpoints load-testen (besonders Blockchain-Nodes oder interne RPC-Services), läuft LoadFocus JMeter- und k6-Scripts aus 25+ Regionen mit bis zu 12.500 VUs. Registrieren bei loadfocus.com/signup.
Verwandte LoadFocus-Tools
Setze dieses Konzept mit LoadFocus in die Praxis um — derselben Plattform, die alles antreibt, was du gerade gelesen hast.