myFlixAPI (movie_api)

The web application allows users to access detailed information about featured films, including casts,
producers, directors, and genres. Users will be able to create a personal account, and will have the
abilitiy to customize their own list of favorite movies and a wish list of movies they would like to watch.


Business Logic URL HTTP Method Request body data format Response body data format
Returns a list of all movies to the user /movies Get None Json object holding data about all movies
Returns data about a single movie by title to the user /movies/[title] GET None Json object holding data about a single movie, containing: year, genre, and director, and using the following structure: { "movieId": "00000", "Title": "Movie Title Here", "Synopsis": "Movie Description Here", "ImagePath": "image.png", "Year": "0000", "Director": { "DirectorId": "0000", "Name": "Director Name", "Bio": "Biography of director here.", "BirthYear": "0000", "DeathYear": "0000", }, "Genre": { "GenreId": "0000" "Name": "Genre here", "Description": "Description of genre here." }
Returns data about a genre by name/title /movies/genres/[genreName] GET None Json object holding data about a single genre and it's description, using the following structure: { "GenreId": "0000", "Name": "Genre Name", "Description": "Description of genre here." }
Returns data about a director by name, containing: bio, birth year, and death year, and using the following structure: { "DirectorId": "00000", "Name": "Director Name", "Bio": "Direcotry biography here.", "Birth Year": "0000", "Death Year": "0000" } /movies/directors/[directorName] GET None Json object holding data about a single director, containing: director name, bio, birth year, and death year.
Allow new users to register /users POST Json object holding data about user to add, using the following structure: { ID: Integer, userName: String, Password: String, email: String, birthdate: Date, favoriteMovies: String, } Json object holding data about user that was added (including ID), using the following structure: { "__id": "00aaa0000a0000a0", "userName": "TestUser", "Password": "0000", "email": "test@email.com", "birthdate": "0000-00-00" "favoriteMovies": [], }
Allows users to update their user info users/[Username] PUT Json object holding data about the user info that needs updating, using the following structure: { Username: req.body.Username, Password: req.body.Password, Email: req.body.Email, Birthday: req.body.Birthday, }
Allows users to add a movie to their list of favorites /users/[Username]/movies/[MovieID] POST None Json object holding data about the updated list of favorites, using the following structure: { "__id": "00aaa0000a0000a0", "userName": "TestUser" "Password": "0000", "email": "test@email.com", "birthdate": "0000-00-00" "favoriteMovies": [ "1", "2", "3" ] }
Allows users to remove a movie from their list of favorites /users/[Username]/movies/[movieID] DELETE None Json object holding data about the updated list of favorites, using the following structure: { "__id": "00aaa0000a0000a0", "userName": "TestUser" "Password": "0000", "email": "test@email.com", "birthdate": "0000-00-00" "favoriteMovies": [ "1", "2" ] }
Allows existing users to deregister /users/[Username] DELETE None A text message showing that a user has been removed.