Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

tRPC vs REST Comparison

Introduction

This lesson explores the differences between tRPC and REST APIs, two popular methods for building back-end services. Understanding their differences can help developers choose the right architecture for their applications.

REST Overview

What is REST?

REST (Representational State Transfer) is an architectural style that uses standard HTTP methods to perform CRUD (Create, Read, Update, Delete) operations on resources.

Key Concepts

  • Stateless: Each request from client to server must contain all the information needed to understand and process the request.
  • Resource-Based: Everything is treated as a resource, identified by URIs.
  • Standard Methods: Uses standard HTTP methods like GET, POST, PUT, DELETE.

Code Example


                // Example of a RESTful API endpoint in Express.js
                const express = require('express');
                const app = express();
                app.get('/api/users', (req, res) => {
                    res.json([{ name: 'John Doe' }]);
                });
                app.listen(3000, () => console.log('Server running on port 3000'));
                

tRPC Overview

What is tRPC?

tRPC (TypeScript Remote Procedure Call) is a framework for building APIs that allows you to call server-side code directly from the client-side without needing to define REST endpoints.

Key Concepts

  • Type Safety: Full type safety between client and server, eliminating runtime errors.
  • Remote Procedure Calls: Calls are made directly to functions instead of REST endpoints.
  • Auto-Generated Routes: Routes are automatically handled based on the method names.

Code Example


                // Example of a tRPC API endpoint
                import { createRouter } from '@trpc/server';
                const appRouter = createRouter()
                    .query('getUser', {
                        resolve() {
                            return { name: 'John Doe' };
                        },
                    });
                

Comparison

tRPC vs REST

Feature REST tRPC
Architecture Resource-oriented Function-oriented
Type Safety No Yes
Endpoint Definition Requires explicit definition Auto-generated from methods
Overhead Higher due to HTTP methods Lower, direct function calls
Use Cases General-purpose APIs TypeScript-heavy applications

Best Practices

When to use tRPC vs REST

Use REST when:

  • Building a public API that needs to be widely accessible.
  • Working with a variety of clients not limited to TypeScript.

Use tRPC when:

  • Developing a TypeScript application where type safety is crucial.
  • Needing fast and efficient server-client communication.

FAQ

What are the main advantages of tRPC?

tRPC provides type safety, fewer boilerplate codes, and a more direct way to call server-side functions, making it a great choice for TypeScript applications.

Can I use tRPC with JavaScript?

While tRPC is primarily designed for TypeScript, it can be used with JavaScript, but you will lose type safety benefits.

Is REST still relevant in modern development?

Yes, REST is still widely used and is relevant, especially for public APIs and when working with multiple client types.