Skip to content
Ahmed Mahfouz
← Earlier work

2022 · JavaScript

RESTful API with Postman

A Node.js and MySQL REST API for car records, tested end-to-end with Postman and CRUD workflows.

Language
JavaScript

Project context

This project was my hands-on introduction to building a full CRUD REST API with a relational database.

The target was clear: create endpoints for a car resource, connect them to MySQL, and test the full flow with Postman.

At the time, I was focused on one thing: understanding the full request lifecycle from HTTP call to SQL execution and back to JSON response.

Tech stack

  • Node.js
  • Express
  • MySQL (mysql package)
  • Postman for endpoint validation
  • SQL procedures in forcars.sql

The API listens on port 3000 and connects to a local MySQL database called forcars.

Endpoints implemented

The API includes the core CRUD operations:

  • GET /cars -> list all cars
  • GET /cars/:id -> fetch one car by carID
  • POST /cars -> create a new car (through carAdd() procedure)
  • PUT /cars -> update a car (through carEdit() procedure)
  • DELETE /cars/:id -> delete by carID

I intentionally kept the route design simple so I could focus on query correctness and data flow.

How data moves through the app

When a request hits an endpoint, Express parses JSON body data, then calls MySQL queries with parameter binding.

For create and update, I used stored procedures instead of inline SQL. This was useful for learning separation of concerns:

  • API layer handles transport and request parsing.
  • Database layer handles insert/update rules.

The request-response cycle looks like this:

  1. Postman sends HTTP request.
  2. Express route handler receives params/body.
  3. MySQL query or procedure executes.
  4. API returns JSON message or result set.

Seeing this loop work reliably was the moment backend development started to feel real for me.

What I learned while debugging

1. Connection setup is half the job

The app prints Connected to Database! when successful. If that message did not appear, endpoint testing was pointless.

I learned to verify infrastructure first, then application logic.

2. Input shape matters

For POST and PUT, body fields had to match expected keys exactly (type, brand, license_plate, and carID for update). Small naming mismatches caused silent confusion.

3. SQL and API should speak the same language

I had to keep field names and procedure parameters aligned between JavaScript and MySQL. Once they drift, debugging becomes guesswork.

4. Postman is not just for demos

Using Postman systematically made testing faster:

  • Happy path calls
  • Missing field cases
  • Invalid ID scenarios
  • Repeated updates and deletes

It gave me confidence that behavior was consistent, not accidental.

Notable implementation details

A few points in the code are worth calling out:

  • express.json() and express.urlencoded() are enabled so body parsing is stable.
  • Parameterized SQL is used for ID-based routes to reduce injection risk.
  • Stored procedures (carAdd, carEdit) are invoked with multi-statement queries.

This project is early-stage code, so there are places I would harden now, but the structure taught the right fundamentals.

If I rebuilt this today

I would keep the same scope and improve production readiness:

  • Move DB credentials to environment variables (.env)
  • Replace raw callback patterns with async/await
  • Add schema validation with zod or joi
  • Return consistent HTTP status codes and error objects
  • Add integration tests with a test database
  • Containerize API + DB with Docker Compose

I would also split routes/controllers/services for cleaner code organization as the API grows.

Why this project still matters in my portfolio

This is a small backend project, but it shows core engineering behavior:

  • Build minimal, complete functionality
  • Validate it through explicit API tests
  • Learn from operational and schema mismatches
  • Improve iteration by iteration

For junior backend roles, that process matters more than writing a very large codebase once.

SEO relevance

If you are searching for a Node.js REST API with MySQL and Postman example, this project is a practical starting point. It covers core CRUD patterns, stored procedure integration, and end-to-end request testing without overcomplicating the stack.

It is useful for students and early-career developers who want a project they can understand, run locally, and extend.

Repository

Source code and SQL script are available here:

GitHub repository

Hiring for applied AI? Let's talk.

contact@ahmedmahfouz.me
Download CV

Or leave a message here. It reaches the same inbox.