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 constaterez qu'il s'agit de requêtes et réponses HTTP assez standard. Cependant, vous n'avez pas besoin de penser aux détails d'implémentation lors de l'écriture de votre code applicatif. Vous appelez simplement des fonctions, et tRPC gère tout le reste. Vous devriez ignorer des détails comme les verbes HTTP, car ils ont une signification dans les API REST mais, dans le RPC, ils font partie intégrante des noms de vos 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.

TermeDescription Avancez vite sans rien casser.\nDes APIs end-to-end typesafe, simplifiées.
Procedure ↗Point de terminaison d'API - peut être une query, une mutation ou une subscription.
QueryUne procedure qui récupère des données.
MutationUne procedure qui crée, met à jour ou supprime des données.
Subscription ↗Une procedure qui établit une connexion persistante et surveille les changements.
Router ↗Collection de procedures (et/ou d'autres routers) sous un espace de noms partagé.
Context ↗Éléments accessibles par chaque procedure. Couramment utilisé pour l'état de session ou les connexions à la base de données.
Middleware ↗Fonction exécutant du code avant et après une procedure. Peut modifier le context.
Validation ↗"Les données d'entrée contiennent-elles les bonnes informations ?"