Aller au contenu principal
Version : 11.x

Concepts

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Qu'est-ce que RPC ? Quelle approche adopter ?

Ce ne sont que des fonctions

RPC est l'acronyme de "Remote Procedure Call" (appel de procédure à distance). Il s'agit d'une méthode pour appeler des fonctions sur un ordinateur (le serveur) depuis un autre ordinateur (le client). Avec les API HTTP/REST traditionnelles, vous appelez une URL et obtenez une réponse. Avec RPC, vous appelez une fonction et obtenez une réponse.

ts
// HTTP/REST
const res = await fetch('/api/users/1');
const user = await res.json();
// RPC
const user = await api.users.getById({ id: 1 });
ts
// HTTP/REST
const res = await fetch('/api/users/1');
const user = await res.json();
// RPC
const user = await api.users.getById({ id: 1 });

tRPC (TypeScript Remote Procedure Call) est une implémentation de RPC, conçue pour les monorepos TypeScript. Bien qu'elle ait sa propre spécificité, elle reste fondamentalement du RPC.

Ne vous focalisez pas sur les détails d'implémentation HTTP/REST

Si vous inspectez le trafic réseau d'une application tRPC, vous verrez des requêtes et réponses HTTP standards. Mais vous n'avez pas à vous soucier des détails d'implémentation lors de l'écriture de votre code applicatif. Vous appelez simplement des fonctions, et tRPC gère le reste. Ignorez des éléments comme les verbes HTTP, qui ont une signification dans les API REST, car en RPC ils font partie intégrante des noms de fonctions. Par exemple : getUser(id) au lieu de GET /users/:id.

Vocabulaire

Vous trouverez ci-dessous des termes fréquemment utilisés dans l'écosystème tRPC. Nous les emploierons tout au long de la documentation, il est donc important de vous familiariser avec eux. La plupart de ces concepts disposent également de leurs propres pages dans la documentation.

TermDescription
Procedure ↗API endpoint - can be a query, mutation, or subscription.
QueryA procedure that gets some data.
MutationA procedure that creates, updates, or deletes some data.
Subscription ↗A procedure that creates a persistent connection and listens to changes.
Router ↗A collection of procedures (and/or other routers) under a shared namespace.
Context ↗Stuff that every procedure can access. Commonly used for things like session state and database connections.
Middleware ↗A function that can run code before and after a procedure. Can modify context.
Validation ↗"Does this input data contain the right stuff?"