This web application 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.
Business Logic | URL | HTTP Method | Request body data format | Response body data format |
---|---|---|---|---|
Login to user Must login to access the API |
/login | POST | Params of Username: "username" Password: "password" |
A JSON object holding data about logged in user Returns info about signed in user { "user":{ User Info }, "token": "your-token" } |
Get a list of movies | /movies | GET | NONE | A JSON array holding data about all the movies Returns an array of movies [] Movies |
Get info by Movie Description, Genre, Director, Cover-art |
/movies/:Title | GET | NONE | A JSON object holding data about the movie Returns an object about the movie { Title: string, Description: string, Released: string, Genre: []string, Director: []string, ImagePath: string Featured: boolean } |
Get a list of Genres | /genres | GET | NONE | A JSON array holding data about all Genre Returns a array of Genre [] Genres |
Get Genre by Name Horror, Action, Sci-fi |
/genres/:Name | GET | NONE | A JSON object holding data about chosen Genre Returns a object about Genre { Name: string, About: string } |
Get a list of Directors | /directors | GET | NONE | A JSON array holding data about all Directors Returns a array of Directors [] Directors |
Get Director by Name example: Ridley Scott |
/directors/:Name | GET | NONE | A JSON object holding data about chosen directors name Returns a object about the director { Name: string, Bio: string, Born: intiger, Dead: string } |
Allow new users to register | /users | POST | A JSON object holding data about the user to add. Structured like: { "Username": "Billy", "Password": "secure123", "Email": "billy.g@email.com", "FavoriteMovies": [], "Birthday": "YYYY-MM-DD" } |
A text message indicating whether the user was successfully created or not Message: "Billy" was added |
Get user by username | /users/:Username | GET | Authorize your token | A JSON object holding data about user Returns an object about the user { "Username": "Billy", "Password": "secure123", "Email": "billy.g@email.com", "FavoriteMovies": [], "Birthday": "YYYY-MM-DD" } |
Allow users to update their user info | /users/:Username | PUT | Authorize your token A JSON object holding data about the user update. Structured like: { "Username": "Billy G", } |
A JSON object holding data about updated user: { "Username": "Billy G", "Password": "secure123", "Email": "billy.g@email.com", "FavoriteMovies": [], "Birthday": "YYYY-MM-DD" } |
Allow users to add a movie to their list of favorites |
/users/:Username/movies/:MovieID | POST | Authorize your token | A text message indicating whether the favorite movie was added or not Message: Movie added to Favorites |
Allow users to Remove a movie from their list of favorites |
/users/:Username/movies/:MovieID | DELETE | Authorize your token | A text message indicating whether the favorite movie was removed or not Message: Movie removed from Favorites |
Allow existing users to deregister | /users/:Username | DELETE | Authorize your token | A text message indicating whether the user was removed or not Message: "Willy" was deleted |