northwind-rest-api

1.0.2 • Public • Published

northwind-rest-api

A local REST API for Northwind database, containing products, employees, suppliers, categories, authentication and more.

Installation:

npm i -g northwind-rest-api

(You must install it globally using the -g flag so the backend could be started via command-line.)

CLI Commands:

  • Run the REST API:
northwind  
  • Display help:
northwind --help 
  • Display version:
northwind --version

Existing Users:

  1. Admin User:
  1. Regular User:

Endpoints:

Products:

  • GET http://localhost:3030/api/products → Get all products.
  • GET http://localhost:3030/api/products/7 → Get product with id 7.
  • POST http://localhost:3030/api/products → Add a new product.
  • PUT http://localhost:3030/api/products/7 → Update product with id 7.
  • DELETE http://localhost:3030/api/products/7 → Delete product with id 7.
  • GET http://localhost:3030/api/products/images/01a5a6d5-6cc4-4e72-8f5d-e44efd3bc3d7.jpg → Get that product's image.
  • GET http://localhost:3030/api/products/top-three → Get top three products (must be logged-in).
  • GET http://localhost:3030/api/products/out-of-stock → Get out-of-stock products (must be admin).

Employees:

  • GET http://localhost:3030/api/employees → Get all employees.
  • GET http://localhost:3030/api/employees/7 → Get employee with id 7.
  • POST http://localhost:3030/api/employees → Add a new employee.
  • PUT http://localhost:3030/api/employees/7 → Update employee with id 7.
  • DELETE http://localhost:3030/api/employees/7 → Delete employee with id 7.
  • GET http://localhost:3030/api/employees/images/01a5f7d1-42e8-4f71-83c4-58e86751b272.jpg → Get that employee's image.

Suppliers:

  • GET http://localhost:3030/api/suppliers → Get all suppliers.
  • GET http://localhost:3030/api/suppliers/7 → Get supplier with id 7.
  • POST http://localhost:3030/api/suppliers → Add a new supplier.
  • PUT http://localhost:3030/api/suppliers/7 → Update supplier with id 7.
  • DELETE http://localhost:3030/api/suppliers/7 → Delete supplier with id 7.
  • GET http://localhost:3030/api/suppliers/images/01a57fe7-0f02-45e3-968b-65264020dd46.jpg → Get that supplier's image.

Categories:

  • GET http://localhost:3030/api/categories → Get all categories (must be logged-in).
  • GET http://localhost:3030/api/categories/7 → Get category with id 7 (must be logged-in).
  • POST http://localhost:3030/api/categories → Add a new category (must be logged-in).
  • PUT http://localhost:3030/api/categories/7 → Update category with id 7 (must be logged-in).
  • DELETE http://localhost:3030/api/categories/7 → Delete category with id 7 (must be admin).
  • GET http://localhost:3030/api/categories/images/01a1f85a-335e-4797-82b4-4c53d3aacb73.jpg → Get that category's image.

Contact Us:

  • POST http://localhost:3030/api/contact-us → Add a new contact-us message.
  • GET http://localhost:3030/api/contact-us → Get all contact-us messages (must be admin).

Auth:

  • POST http://localhost:3030/api/register → Register as a new user.
  • POST http://localhost:3030/api/login → Login as an existing user.
  • POST http://localhost:3030/api/refresh-token → Get back a new token (must be logged-in).

Slow Server Simulation:

For simulating a slow server you can precede each endpoint (besides image endpoints) with the word "delay". This will cause a 3 seconds delay for that route. This can help test how your frontend behaves when performing an http request to a slow server.

Examples:

  • GET http://localhost:3030/api/products → Gets all products without any delay.
  • GET http://localhost:3030/delay/api/products → Gets all products after a 3 seconds delay.
  • GET http://localhost:3030/api/employees/7 → Gets employee with id 7 without any delay.
  • GET http://localhost:3030/delay/api/employees/7 → Gets employee with id 7 after a 3 seconds delay.
  • POST http://localhost:3030/api/suppliers → Adds a new supplier without any delay.
  • POST http://localhost:3030/delay/api/suppliers → Adds a new supplier after a 3 seconds delay.

Entities:

User:

Property Description
id User's ID
firstName User's first name
lastName User's last name
email User's email
password User's password
role User's role

Product:

Property Description
id Product's ID
name Product's name
price Product's price
stock Available stock of the product
imageUrl URL of the product's image

Employee:

Property Description
id Employee's ID
firstName Employee's first name
lastName Employee's last name
title Employee's job title
country Employee's country
city Employee's city
birthDate Employee's birth date
imageUrl URL of the employee's image

Supplier:

Property Description
id Supplier's ID
company Supplier's company name
country Supplier's country
city Supplier's city
address Supplier's address
phone Supplier's phone number
imageUrl URL of the supplier's image

Category:

Property Description
id Category's ID
name Category's name
description Description of the category
imageUrl URL of the category's image

Contact Us Message:

Property Description
id Contact's ID
name Contact's name
email Contact's email address
phone Contact's phone number
message Contact's message

/northwind-rest-api/

    Package Sidebar

    Install

    npm i northwind-rest-api

    Weekly Downloads

    10

    Version

    1.0.2

    License

    ISC

    Unpacked Size

    3.59 MB

    Total Files

    168

    Last publish

    Collaborators

    • assaf.fink