Guided project for Node API 1 Module.
In this project we will learn how to create a very simple Web API using Node.js
and Express
, and cover the basics of server-side routing
and using global middleware
.
The code for the guided project will be written in a single file for simplicity. We'll see ways to structure an API to make it more maintainable in upcoming lectures.
- fork and clone this repository.
- CD into the folder where you cloned your fork.
Build a RESTful Web API to manage "Lessons" and "Hubs". A Hub is a group chat channel that brings together an instructor and a group of students from the same cohort as they work on a Lesson.
An example would be a Hub created to go over the "Introduction to Node and Express" lesson for the Web 1 cohort.
A Lesson has:
- a unique
id
. - a
name
.
A Hub has:
- a unique
id
. - a
name
. - a
lessonId
that connects it to the corresponding Lesson. - a
cohort
.
The Web API must provide a set of endpoints
to fulfill the following needs:
- add a new Lesson.
- view a list of existing Lessons.
- view the details of a single Lesson
- update the information of an existing Lesson.
- remove a Lesson.
- add a new Hub.
- view a list of existing Hubs.
- view the details of a single Hub
- update the information of an existing Hub.
- remove a Hub.
Here is a table with the endpoint
descriptions:
Action | URL | Method | Response |
---|---|---|---|
Add a Lesson | /api/lessons | POST | the new Lesson |
View list of Lessons | /api/lessons | GET | array of Lessons |
View Lesson details | /api/lessons/{id} | GET | a Lesson |
Update Lesson | /api/lessons/{id} | PATCH | updated Lesson |
Remove a Lesson | /api/lessons/{id} | DELETE | deleted Lesson |
Add a Hub | /api/hubs | POST | the new Hub |
View list of Hubs | /api/hubs | GET | array of Hubs |
View Hub details | /api/hubs/{id} | GET | a Hub |
Update Hub | /api/hubs/{id} | PATCH | updated Hub |
Remove a Hub | /api/hubs/{id} | DELETE | deleted Hub |