myFlix Documentation: a REST API with node.js
A web application that will provide users with access to information about different movies, directors, and genres. Users will be able to sign up, update their personal information, and create a list of their favorite movies.
| Description | URL Endoint | HTTP Method | Request Body Format | Response Body Format |
|---|---|---|---|---|
| This endpoint will return a list of all the movies in the database | /movies | GET | None | A JSON object with data about all the movies. Example of JSON structure for one movie:
{
"Genre": {
"Name": "Fantasy",
"Description": "A genre of speculative fiction set in a
fictional universe, often inspired by real world myth and
folklore. Its roots are in oral traditions, which then
became fantasy literature and drama."
},
"Director": {
"Name": "Chris Columbus",
"Bio": "Born in Pennsylvania and raised in Ohio,
Chris Columbus was first inspired to make movies
after seeing 'The Godfather' at age 15.",
"Birth": "1958"
},
"Actors": [],
"_id": "603851fd7778532c1f4fa159",
"Title": "Harry Potter and the Chamber of Secrets",
"Description": "An ancient prophecy seems to be coming true when a
mysterious presence begins stalking the corridors of a school of
magic and leaving its victims paralyzed",
"ImagePath": "hpchamberofsecrets.png",
"Featured": false
}
|
| This endpoint will get information (description, genre, director, and image URL) about a single movie title | /movies/:Title | GET | None | JSON object with data about a specific movie with info about title, genre, and director. Example JSON structure:
{
"Genre": {
"Name": "Fantasy",
"Description": "A genre of speculative fiction set in a
fictional universe, often inspired by real world myth and
folklore. Its roots are in oral traditions, which then
became fantasy literature and drama."
},
"Director": {
"Name": "Chris Columbus",
"Bio": "Born in Pennsylvania and raised in Ohio,
Chris Columbus was first inspired to make movies
after seeing 'The Godfather' at age 15.",
"Birth": "1958"
},
"Actors": [],
"_id": "603851fd7778532c1f4fa159",
"Title": "Harry Potter and the Chamber of Secrets",
"Description": "An ancient prophecy seems to be coming true when a
mysterious presence begins stalking the corridors of a school of
magic and leaving its victims paralyzed",
"ImagePath": "hpchamberofsecrets.png",
"Featured": false
}
|
| Return data about the genre of a single movie by title | /movies/:Title/genres | GET | None | A JSON object with data about the genre of a movie, and description of genre. Example of JSON structure:
{
"Name": "Fantasy",
"Description": "A genre of speculative fiction set in a fictional universe,
often inspired by real world myth and folklore. Its roots are in oral
traditions, which then became fantasy literature and drama."
}
|
| This will return data about a movie director by name | /directors/:Name | GET | None | JSON object with data about director containing bio and birth year. Example JSON structure:
{
"Name": "Chris Columbus",
"Bio": "Born in Pennsylvania and raised in Ohio, Chris Columbus was
first inspired to make movies after seeing 'The Godfather' at age 15.",
"Birth": "1958"
}
|
| This allows new users to register | /users | POST | JSON object with data of a new user containing username, password and email. Example of JSON structure:
{
"Username" : "testuser123",
"Password" : "password123",
"Email" : "testing@gmail.com",
"Birthday" : "09-10-20"
}
|
JSON object with data about user that was addded. Example JSON structure:
{
"FavoriteMovies": [],
"_id": "603fe08ee4da91f97138e0fc",
"Username": "testuser123",
"Password": "password123",
"Email": "testing@gmail.com",
"Birthday": "2020-09-10T07:00:00.000Z",
"__v": 0
}
|
| This will return data about one users profile | /users/:Username | GET | None | JSON object with data about user containing username, password, email and birthdate. Example JSON structure:
{
"FavoriteMovies": [],
"_id": "603fe08ee4da91f97138e0fc",
"Username": "testuser123",
"Password": "password123",
"Email": "testing@gmail.com",
"Birthday": "2020-09-10T07:00:00.000Z",
"__v": 0
}
|
| This allows users to update their info/username | /users/:Username | PUT | JSON object with updated info. Example JSON structure:
{
"Username" : "testuser123",
"Password" : "passwordsupdated",
"Email" : "testingnewemail@gmail.com",
"Birthday" : "09-10-20"
}
|
JSON object with updated info. JSON structure example:
{
"FavoriteMovies": [],
"_id": "603ec85e115174eb2b83b233",
"Username": "testuser123",
"Password": "passwordsupdated",
"Email": "testingnewemail@gmail.com",
"Birthday": "2020-09-10T07:00:00.000Z",
"__v": 0
}
|
| This allows users to add a movie to their favorites list | /users/:Username/movies/:MovieID | POST | None | A text stating that the movie has been added to their favorites list. Example JSON structure:
{
"FavoriteMovies": [
"603851fd7778532c1f4fa159"
],
"_id": "603ec85e115174eb2b83b233",
"Username": "testuser123",
"Password": "passwordsupdated",
"Email": "testingnewemail@gmail.com",
"Birthday": "2020-09-10T07:00:00.000Z",
"__v": 0
}
|
| This allows users to remove movies from favorites | /users/:Username/movies/:MovieID | DELETE | None | A text stating that the movie has been removed. JSON structure example:
{
"FavoriteMovies": [],
"_id": "603ec85e115174eb2b83b233",
"Username": "testuser123",
"Password": "passwordsupdated",
"Email": "testingnewemail@gmail.com",
"Birthday": "2020-09-10T07:00:00.000Z",
"__v": 0
}
|
| This allows users to deactivate their account | /users/:Username | DELETE | None | A text stating the the user email/account has been removed and deactivated. Returns:
testuser123 was deleted.
|