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

AspectJSON-RPCRESTgRPC
StyleRPCResource (CRUD)RPC
TransportN'importe quelHTTP seulementHTTP/2
PayloadJSONJSON, XMLProtocol Buffers
SchemaAucunOpenAPI (optionnel).proto (mandatory)
StreamingLimitéLimitéBidirectionnel natif
Support navigateurOuiOuiLimité (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

CodeMessageSignification
-32700Parse errorJSON invalide reçu
-32600Invalid RequestPas un objet Request valide
-32601Method not foundMethod n'existe pas sur le serveur
-32602Invalid paramsParamètres method invalides
-32603Internal errorErreur 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.

Quelle est la vitesse de votre site web?

Augmentez sa vitesse et son référencement naturel de manière transparente avec notre Test de Vitesse gratuit.

Test gratuit de vitesse du site Web

Analyser la vitesse de chargement de votre site Web et améliorer ses performances avec notre outil gratuit de vérification de la vitesse de la page.

×