How to Create a REST API with Node.js
Build a production-grade REST API with Express or Fastify, including validation, authentication, and documentation.
What You'll Learn
This beginner-level guide walks you through how to create a rest api with node.js step by step. Estimated time: 14 min.
Step 1: Choose your framework
Select Express for ecosystem maturity and middleware availability, or Fastify for better performance and built-in schema validation.
Step 2: Set up project structure
Organize your project with controllers, services, repositories, and middleware layers for clean separation of concerns.
Step 3: Implement CRUD endpoints
Build create, read, update, and delete endpoints with proper HTTP methods, status codes, and response formats.
Step 4: Add validation and error handling
Use Zod or Joi for request validation, implement centralized error handling, and return consistent error response formats.
Step 5: Generate API documentation
Auto-generate OpenAPI/Swagger documentation from your route definitions and validation schemas for developer reference.
Frequently Asked Questions
Express or Fastify?▾
Express for broad ecosystem support and team familiarity. Fastify for 2-3x better performance, built-in validation, and TypeScript-first design.
How should I structure my API project?▾
Use a layered architecture: routes for HTTP handling, controllers for request/response, services for business logic, and repositories for data access.
What about tRPC instead of REST?▾
tRPC is excellent for full-stack TypeScript apps where you control both client and server. REST is better for public APIs and multi-language consumers.