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.
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.