FlickPick API Documentation

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"] } ]

Other Routes