Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Introduction to tRPC

What is tRPC?

tRPC (Type-safe Remote Procedure Call) is a library that enables you to create type-safe APIs using TypeScript. It allows you to build end-to-end type-safe APIs without the need for a separate schema definition, making it easier and faster to develop applications.

Key Concepts

  • Type Safety: Ensures that the types used in requests and responses are consistent and checked at compile-time.
  • Procedure Calls: API calls are structured as procedures, allowing for easy invocation and handling.
  • Automatic Type Inference: Automatically infers types from your code, reducing the need for manual type definitions.

Installation

To get started with tRPC, you can install it using npm:

npm install @trpc/server @trpc/client

Make sure to also set up TypeScript in your project if you haven't already.

Creating a Basic Server

Follow these steps to create a simple tRPC server:

  1. Create a new file named appRouter.ts:
  2. import { createRouter } from '@trpc/server';
    
    const appRouter = createRouter()
      .query('getUser', {
        resolve() {
          return { id: 1, name: 'John Doe' };
        },
      });
    
    export type AppRouter = typeof appRouter;
  3. Set up your server in server.ts:
  4. import { createHTTPHandler } from '@trpc/server/adapters/standalone';
    import { appRouter } from './appRouter';
    
    const handler = createHTTPHandler({
      router: appRouter,
    });
    
    const server = require('http').createServer(handler);
    server.listen(4000, () => {
      console.log('Server is listening on http://localhost:4000');
    });
  5. Run your server:
  6. node server.js

Best Practices

  • Use TypeScript to leverage type safety effectively.
  • Organize your routers logically to keep your code maintainable.
  • Document your API procedures for easy understanding by other developers.

FAQ

What are the advantages of using tRPC?

tRPC provides automatic type safety, reduces boilerplate code, and streamlines the API development process by eliminating the need for a separate schema definition.

Can tRPC be used with existing REST APIs?

Yes, tRPC can be integrated with existing REST APIs, allowing you to leverage its type safety features alongside traditional REST practices.

How does tRPC handle errors?

tRPC offers built-in error handling mechanisms that allow you to catch and manage errors within your procedures effectively.