Mock Backend for React Using json-server: Creating Mock APIs in Minutes

Shubham SardaShubham Sarda
3 min read

Building a full-stack application often involves waiting for APIs to be fully developed before integrating them with your frontend. However, with tools like json-server, you can create a mock server to simulate API responses, enabling you to develop and test your React application efficiently. Here’s a step-by-step guide to setting up a mock server with json-server for your React project.


Step 1: Install json-server

Before diving in, ensure you have Node.js and npm installed on your system. Open your terminal and run:

npm install -g json-server

This installs json-server globally, allowing you to use it in any project.


Step 2: Create a db.json File

The db.json file acts as your database. It’s a simple JSON file where you define the data structure. Create a db.json file in your project root with the following structure:

{
  "users": [
    { "id": 1, "name": "John Doe", "email": "john.doe@example.com" },
    { "id": 2, "name": "Jane Smith", "email": "jane.smith@example.com" }
  ],
  "posts": [
    { "id": 1, "title": "React Tips", "content": "Learn how to use React efficiently." },
    { "id": 2, "title": "Understanding Hooks", "content": "A deep dive into React Hooks." }
  ]
}

You can customize this file to mimic the data your application will use.


Step 3: Start json-server

Start the server by running:

json-server --watch db.json --port 5000

This command does the following:

  • Watches for changes in db.json.

  • Serves the data on http://localhost:5000.

You can now access endpoints like:

  • http://localhost:5000/users

  • http://localhost:5000/posts


Step 4: Integrate with Your React Application

Modify your React application to fetch data from the mock server. For example:

import React, { useEffect, useState } from "react";

function App() {
  const [users, setUsers] = useState([]);

  useEffect(() => {
    fetch("http://localhost:5000/users")
      .then((response) => response.json())
      .then((data) => setUsers(data));
  }, []);

  return (
    <div>
      <h1>Users</h1>
      <ul>
        {users.map((user) => (
          <li key={user.id}>{user.name} - {user.email}</li>
        ))}
      </ul>
    </div>
  );
}

export default App;

Run your React app, and you’ll see the data from json-server displayed on your frontend.


Step 5: Customize Routes (Optional)

You can customize routes by creating a routes.json file. For example:

{
  "/api/users": "/users",
  "/api/posts": "/posts"
}

Start json-server with the custom routes:

json-server --watch db.json --routes routes.json --port 5000

Now, you can access your endpoints as:

  • http://localhost:5000/api/users

  • http://localhost:5000/api/posts


Benefits of Using json-server

  1. Rapid Prototyping: Quickly test and develop your frontend without waiting for a backend.

  2. Realistic Data: Simulate realistic API responses with minimal effort.

  3. Customizability: Define custom routes and middleware for complex scenarios.


Conclusion

Creating a mock server with json-server is a straightforward and effective way to streamline your React development process. With a few simple steps, you can simulate API interactions, allowing you to focus on building a great user experience.

Start using json-server today and boost your development productivity!

0
Subscribe to my newsletter

Read articles from Shubham Sarda directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Shubham Sarda
Shubham Sarda