Qu'est-ce que JSON-RPC ? Protocole, Exemples, Comparaison REST
JSON-RPC est un protocole RPC stateless léger utilisant JSON pour request/response.
Qu'est-ce que JSON-RPC ?
JSON-RPC est un protocole stateless léger Remote Procedure Call (RPC) qui utilise JSON pour les payloads request et response. La version actuelle est JSON-RPC 2.0, finalisée en 2010. Le protocole est transport-agnostic, peut tourner sur HTTP, WebSocket, TCP, et est intentionnellement plus simple que des alternatives comme SOAP ou gRPC.
L'utilisation contemporaine la plus grande est dans les écosystèmes blockchain (les nodes Ethereum communiquent exclusivement via JSON-RPC), mais c'est aussi courant dans les microservices internes, le tooling IDE (Language Server Protocol) et l'IoT.
Structure de requête JSON-RPC
{
"jsonrpc": "2.0",
"method": "subtract",
"params": [42, 23],
"id": 1
}- jsonrpc: version protocole, toujours "2.0".
- method: la fonction à appeler sur le serveur.
- params: arguments.
- id: ID unique généré par client.
Response :
{
"jsonrpc": "2.0",
"result": 19,
"id": 1
}JSON-RPC vs REST vs gRPC
| Aspect | JSON-RPC | REST | gRPC |
|---|---|---|---|
| Style | RPC | Resource (CRUD) | RPC |
| Transport | N'importe quel | HTTP seulement | HTTP/2 |
| Payload | JSON | JSON, XML | Protocol Buffers |
| Schema | Aucun | OpenAPI (optionnel) | .proto (mandatory) |
| Streaming | Limité | Limité | Bidirectionnel natif |
| Support navigateur | Oui | Oui | Limité (gRPC-Web) |
Cas d'usage courants JSON-RPC
- Nodes blockchain. Ethereum, Bitcoin exposent JSON-RPC.
- Microservices internes.
- 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}
]Codes d'erreur standard
| Code | Message | Signification |
|---|---|---|
| -32700 | Parse error | JSON invalide reçu |
| -32600 | Invalid Request | Pas un objet Request valide |
| -32601 | Method not found | Method n'existe pas sur le serveur |
| -32602 | Invalid params | Paramètres method invalides |
| -32603 | Internal error | Erreur interne JSON-RPC |
Pros et cons
Pros
- Simple.
- Transport-agnostic.
- Payloads JSON.
- Support batch.
Cons
- Pas de langage schema standard.
- Pas de streaming natif.
- Couche HTTP ignorée.
- Moins de tooling que REST/gRPC.
Associé : surveillance des API.
FAQ : JSON-RPC
JSON-RPC est-il toujours utilisé ?
Oui, heavily dans la blockchain, Language Server Protocol et microservices internes.
JSON-RPC vs REST : lequel est meilleur ?
REST pour APIs resource-CRUD. JSON-RPC pour APIs action-oriented.
JSON-RPC utilise-t-il les codes status HTTP ?
Souvent retourne 200 même pour erreurs (info erreur dans body JSON).
Comment authentifier JSON-RPC ?
Comme n'importe quelle API HTTP : bearer tokens, API keys, OAuth.
Quelle est la différence entre JSON-RPC et JSON-RPC 2.0 ?
2.0 a ajouté champ version explicite, meilleur error handling, paramètres named.
JSON-RPC peut-il faire de la communication bidirectionnelle ?
Sur WebSocket oui, serveur peut pousser des notifications au client.
Testez les APIs JSON-RPC at scale avec LoadFocus
Si vous load-testez des endpoints JSON-RPC (spécialement blockchain nodes ou services RPC internes), LoadFocus exécute des scripts JMeter et k6 depuis 25+ régions avec jusqu'à 12 500 VUs. Inscrivez-vous sur loadfocus.com/signup.
Outils LoadFocus connexes
Mettez ce concept en pratique avec LoadFocus, la plateforme même qui propulse tout ce que vous venez de lire.