This project is about building a server-side component of a "movies"
web application which will provide users with access to information
about different concert movies, directors, and genres.
Users will be able to perform CRUD operations on their
personal information and create a list of their favorite movies.
Endpoint | Description | Method | URL Parameters | Request Body | Response Data |
---|---|---|---|---|---|
/users | Allow new users to register | POST | None | {"Name": "string", "Password": "string", "Email": "string", "Birthday": "date"} | { "Name": "Gary Hauch", "Password": "**********", "Email": "Gary@Hauch.com", "Birthday": "1967-05-15" } |
/users/:Name | Allow users to update their user info | PUT | Name: User Name | { "Name": "Gary Hauch", "Password": "**********", "Email": "Gary@Hauch.com", "Birthday": "1967-05-15" } | { "Name": "Gary", "Password": "**********", "Email": "Gary@Hauch.com", "Birthday": "1967-05-15", "FavoriteMovies": [] } |
/users/:Name/movies/:MovieID | Allow users to add a movie to their list of favorites | POST | Name: User Name, MovieID: Movie ID | { "Name": "Gary Hauch", "Password": "**********", "Email": "Gary@Hauch.com", "Birthday": "1967-05-15", "FavoriteMovies": [] } | { "Name": "Gary Hauch", "Password": "**********", "Email": "Gary@Hauch.com", "Birthday": "1967-05-15", "FavoriteMovies": ["617e82c62f50f47278a35a3e"]] |
/users/:Name/movies/:MovieID | Allow users to remove a movie from their list of favorites | DELETE | Name: User Name, MovieID: Movie ID | { "Name": "Gary Hauch", "Password": "**********", "Email": "Gary@Hauch.com", "Birthday": "1967-05-15", "FavoriteMovies": ["617e82c62f50f47278a35a3e"] } | { "Name": "Gary Hauch", "Password": "**********", "Email": "Gary@Hauch.com", "Birthday": "1967-05-15", "FavoriteMovies": [] } |
/users/:Name | Allow existing users to deregister | DELETE | Name: User Name | "Name": "Gary Hauch" | Success message: "Gary Hauch" was deleted |
/movies | Return JSON object containing data about all movies | GET | None | None | [ { "Genre": { "Name": "Musical, Drama, Romance", "Description": "Blends heartfelt musical performances with a touching story of love, dreams, and the power of music." }, "Director": { "Name": "John Carney", "Bio": "John Carney is an Irish filmmaker known for his work in the music genre, including directing 'Once' and 'Sing Street.'", "BirthYear": 1972, "DeathYear": null, "Movies": [ "Once" ] }, "Actors": [], "_id": "64a3198a1519190b136df646", "Title": "Once", "Description": "A musical drama about a Dublin street musician and a Czech immigrant who form an unlikely bond through their shared love of music.", "Year": 2007, "ImagePath": "once.png", "Featured": true }, ... ] |
/movies/:Title | Return JSON object containing data about a single movie by title | GET | Title: Movie Title | None | [ { "Genre": { "Name": "Musical, Drama, Romance", "Description": "Blends heartfelt musical performances with a touching story of love, dreams, and the power of music." }, "Director": { "Name": "John Carney", "Bio": "John Carney is an Irish filmmaker known for his work in the music genre, including directing 'Once' and 'Sing Street.'", "BirthYear": 1972, "DeathYear": null, "Movies": [ "Once" ] }, "Actors": [], "_id": "64a3198a1519190b136df646", "Title": "Once", "Description": "A musical drama about a Dublin street musician and a Czech immigrant who form an unlikely bond through their shared love of music.", "Year": 2007, "ImagePath": "once.png", "Featured": true }] |
/genres/:Name | Return data about a genre (description) by name/title (e.g., "Rock") | GET | Name: Genre Name | None | { "Name": "Rock, Documentary", "Description": "Combines elements of rock music and documentary filmmaking to capture the essence of the concert." } |
/directors/:Name | Return data about a director (bio, birth year, death year) by name | GET | Name: Director Name | None | { "Name": "Martin Scorsese", "Bio": "Example bio information", "BirthYear": 1942, "DeathYear": null} |
/users | Return JSON object containing data about all users | GET | None | None | [ { "Name": "Gary Hauch", "Password": "**********", "Email": "Gary@Hauch.com", "Birthday": "1967-05-15", "FavoriteMovies": ["617e82c62f50f47278a35a3e"] }, ... ] |
/users/:Name | Return JSON object containing data about a single user by name | GET | Name: User Name | None | [ { "Name": "Gary Hauch", "Password": "**********", "Email": "Gary@Hauch.com", "Birthday": "1967-05-15", "FavoriteMovies": ["617e82c62f50f47278a35a3e"] } ] |