ReactJS-The Beginner Master Class
  • React In the Beginning
    • Lesson 1 - Demo: Build a Simple React App - Fast
    • Lesson 2 - HTML Review
    • Lesson 3 - CSS Review
    • Lesson 4 - Modern JavaScript (JSX) Patterns
    • Lesson 5 - Set up Dev Environment
    • Hands-on Practice
  • React Fundamentals
    • Lesson 1 - Understanding Old vs New Way of Building Web Apps - SPAs
    • Lesson 2 - Motivation for Using React as the Solution to Vanilla JS
    • Lesson 3 - What is ReactJS - How it Works
    • React Code Along from Scratch
    • Lesson 4 - Create and Run a React Project with Vite - Full Overview
    • Lesson 5 - Create Hook by State Management in React
    • Lesson 6 - React Project File and Folder Walkthrough
    • Lesson 7 - JSX and How React Treats the DOM & JSX Compilation(by Babeljs) - Overview
    • Lesson 8 - Understanding the Main Files - App.jsx and main.jsx
    • Lesson 9 - Props and One-Way Data Flow - Overview
    • Lesson 10 - Google Bookshelf App - Ver 1.0
    • Hands-on Practice I
    • Hands-on Practice II
  • React State and Styling
    • Lesson 1 - Pulling Book Data from a Different Data File
    • Lesson 2 - Overview of How State Works in React
    • Lesson 3 - RandomQuote App
    • Lesson 4 - Lifting State Up - React Pattern Overview
    • Hands-On - Simple Counter
  • Forms and Interactivity - Grocery List App
    • Lesson 1 - Setup a Simple Form and Input
    • Lesson 2 - Build Form Profile App Using Multi-input Form Data
    • Hands-on : Build a Grocery List App
  • Connecting to the Backend - Consuming APIs - UseEffect Hook
    • Lesson 1 - Connecting to the Back End - Understanding Side Effects, Hooks and useEffect - Overview
    • Lesson 2 - Fetching Data from the Backend the Right Way with useEffect Hook
    • Lesson 3 - Setting Up Loading State
    • Hands-on :Use Dependency Array and Adding Values that Control Side Effects
  • Solo Project 1
  • RESTful APIs :Build a BookSearch App -Ver 2.0
    • Lesson 1: Build and test RESTful APIs with Postman
    • Lesson 2 - BookShelf App Structure
    • Lesson 3 - Create NavBar.jsx Component
    • Lesson 4 - Create Footer Component
    • Lesson 5 - Create BookList.jsx Component
    • Lesson 6 - Create BookCard.jsx Component
    • Lesson 7 - Creating Custom Hooks - useBooks and api-client
    • Lesson 8 - Controlling Network Activities in React with AbortController
    • Lesson 9 - Show Book Details in a Modal - Working
    • Lesson 10 - Bookshelf App Summary
  • Multi-Page Applications (MPAs)
    • Build a Multi-Page React Application
    • Multi-Page React Application
    • Hands-on Practice
  • Backend Frameworks-NEXT.JS
    • Migrating from React to Next.js
    • Lesson 1: Key Concepts of NodeJS and Express for Backend Web Development
    • Lesson 2: How to set up a new Next.js project
    • Lesson 3: How to create Layouts and Pages
    • Hands-on Practice 1
    • Hands on Practice 2
      • New Project & Folder Structure
      • File-Based Routing
      • Server vs Client Components & Router Hooks
      • Start On The Navbar
      • Navbar Links, Dropdowns & React Icons
      • Active Links & Conditional Rendering
      • Homepage Components
      • Properties Page
      • Property Card Dynamic Data
      • Home Property Listings
      • Custom Not Found & Loading Pages
  • Git and GitHubs
    • Git Installation
    • Git Commands
    • GitHub Repository
    • Hands-on Practice
  • Database in Application
    • React Supabase CRUD
    • Hands-on: Note Taking App
  • NoSQL Database
    • Installing MongoDB Community Edition
    • System Env Path Setting
    • How to use MongoDB Shell
    • How to Connect and Use Mongosh in VS Code via MongoDB Extension
    • MongoDB Guide
  • Solo Project 2
  • Deployment and Web Hosting
    • Lesson 1. React+Vite+TS+Shadcn Project
    • Lesson 2. Deploying a React Vite App to Vercel from Vercel CLI
    • Lesson 3 Connecting to GitHub Repo and Automate Deployment
  • Solo Project 3
  • Final Term Project
    • Level 1 Team Project
    • Level 1 Team Project
    • Level 1 Team Project
    • Level 1 Team Project
    • Level 2 Team Project
    • Level 2 Team Project
    • Level 3 Team Project
    • Level 3 Team Project
Powered by GitBook
On this page
  • RESTful APIs
  • 1. What is a RESTful API?
  • 2. Building RESTful APIs with Express Framework and a Vite React Application:
  1. RESTful APIs :Build a BookSearch App -Ver 2.0

Lesson 1: Build and test RESTful APIs with Postman

RESTful APIs

1. What is a RESTful API?

  • Definition: REST (Representational State Transfer) is an architectural style for designing networked applications. A RESTful API allows interaction with web services using standard HTTP methods (GET, POST, PUT, DELETE).

  • Key Concepts and RESTful API Charateristics:

    • Client-Server: The client (e.g., a web browser, mobile app) and server are separate entities.

    • Stateless: Each request from a client contains all the information needed to process it.

    • Cacheable: Responses can be cached to improve performance.

    • Resources: Represented as URLs (e.g., /users, /products).

    • Uniform Interface: A consistent way of interacting with resources using HTTP Methods, URLs, and data formats (typically JSON). :

      • GET: Retrieve data.

      • POST: Create new data.

      • PUT: Update existing data.

      • DELETE: Remove data.

    • URLs (Endpoints): Unique addresses used to identify resources.

    • Representations: Resources are transferred in a specific format, most commonly JSON (JavaScript Object Notation).

  • Example: A RESTful API for a bookstore might have endpoints like /books to get a list of books or /books/:id to get details of a specific book.

2. Building RESTful APIs with Express Framework and a Vite React Application:

  • Setting up the Project:

    1. Create a Vite React project:

      Bash

      npm create vite@latest my-api-app --template react
      cd my-api-app
      npm install
  • Install Express and other dependencies:

npm install express cors body-parser
  • Setup Express and Testing APIs:

    1. Initialize a Node.js Project:

      mkdir my-api-app && cd my-api-app
      npm init -y
      npm install express cors
    2. Create the server file (server.js or index.js):

      • Create index.js:

        const express = require('express');
        const cors = require('cors');
        const app = express();
        const PORT = 3000;
        
        app.use(cors());
        //app.use(bodyParser.json()); // Enable parsing JSON request bodies
        app.use(express.json());
        
        // Sample data
        let books = [
          { id: 1, title: '1984', author: 'George Orwell' },
          { id: 2, title: 'To Kill a Mockingbird', author: 'Harper Lee' },
        ];
        
        // GET all books - API Endpoints
        app.get('/books', (req, res) => {
          res.json(books);
        });
        
        // GET a specific book
        app.get('/books/:id', (req, res) => {
          const book = books.find(b => b.id == req.params.id);
          if (book) res.json(book);
          else res.status(404).send('Book not found');
        });
        
        // POST a new book
        app.post('/books', (req, res) => {
          const newBook = { id: books.length + 1, ...req.body };
          books.push(newBook);
          res.status(201).json(newBook);// 201 Created status code
        });
        
        // PUT to update a book
        app.put('/books/:id', (req, res) => {
          const index = books.findIndex(b => b.id == req.params.id);
          if (index !== -1) {
            books[index] = { id: parseInt(req.params.id), ...req.body };
            res.json(books[index]);
          } else res.status(404).send('Book not found');
        });
        
        // DELETE a book
        app.delete('/books/:id', (req, res) => {
          books = books.filter(b => b.id != req.params.id);
          res.status(204).send();
        });
        
        app.listen(PORT, () => console.log(`Server running on http://localhost:${PORT}`));
    3. Testing RESTful APIs with Postman:

      • Testing Steps:

        1. GET Request:

          • Open Postman and enter http://localhost:3000/books.

          • Click Send to retrieve the list of books.

        2. POST Request:

          • Select POST and enter http://localhost:3000/books.

          • Go to Body, select raw, and choose JSON format.

          • Enter the following:

            {
              "title": "The Great Gatsby",
              "author": "F. Scott Fitzgerald"
            }
          • Click Send to add a new book.

        3. PUT Request:

          • Select PUT and enter http://localhost:3000/books/1.

          • Update the book information in the Body and click Send.

        4. DELETE Request:

          • Select DELETE and enter http://localhost:3000/books/1.

          • Click Send to delete the book.

      4. Integrating the API with a Vite React Application:

      • Fetching Data from API:

        • Edit src/App.jsx:

          import { useState, useEffect } from 'react';
          
          function App() {
            const [books, setBooks] = useState([]);
          
            useEffect(() => {
              fetch('http://localhost:3000/books')
                .then(response => response.json())
                .then(data => setBooks(data));
            }, []);
          
            return (
              <div className="p-4">
                <h1 className="text-2xl font-bold">Book List</h1>
                <ul>
                  {books.map(book => (
                    <li key={book.id}>{book.title} by {book.author}</li>
                  ))}
                </ul>
              </div>
            );
          }
          
          export default App;

    Run both the server and the React app:

    • In your terminal, navigate to your project directory and run: node index.js (or nodemon index.js for automatic restarts).

    • In a separate terminal, run: npm run dev (or yarn dev) to start your React development server.

Student Activity:

  • Build a RESTful API using Express to manage a list of tasks.

  • Test the API using Postman (add, update, delete tasks).

  • Create a Vite React app to display and interact with the API.

By the end of this session, students will understand RESTful APIs, how to build them using Express, and how to test and integrate them into a React application.

PreviousRESTful APIs :Build a BookSearch App -Ver 2.0NextLesson 2 - BookShelf App Structure

Last updated 4 months ago

Install Postman: Download from .

postman.com