Download OpenAPI specification:Download
Extension Criteria for Java API Cinema Challenge
Create a new customer account.
| name required | string |
| email required | string |
| phone required | string |
{- "name": "Chris Wolstenholme",
- "email": "chris@muse.mu",
- "phone": "+44729388192"
}{- "status": "success",
- "data": {
- "id": 1,
- "name": "Chris Wolstenholme",
- "email": "chris@muse.mu",
- "phone": "+44729388192",
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
}{- "status": "success",
- "data": [
- {
- "id": 1,
- "name": "Chris Wolstenholme",
- "email": "chris@muse.mu",
- "phone": "+44729388192",
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
]
}Update an existing customer. If any field is not provided, the original value should not be changed. Any combination of fields can be updated.
| id required | integer The ID of the customer to update |
| name | string |
string | |
| phone | string |
{- "name": "Chris Wolstenholme",
- "email": "chris@muse.mu",
- "phone": "+44729388192"
}{- "status": "success",
- "data": {
- "id": 1,
- "name": "Chris Wolstenholme",
- "email": "chris@muse.mu",
- "phone": "+44729388192",
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
}Delete an existing customer. When deleting data, it's useful to send the deleted record back to the client so they can re-create it if deletion was a mistake.
| id required | integer The ID of the customer to delete |
{- "status": "success",
- "data": {
- "id": 1,
- "name": "Chris Wolstenholme",
- "email": "chris@muse.mu",
- "phone": "+44729388192",
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
}Create a new movie. Optionally, a screenings array can be provided to create screenings when the movie gets created. If no screenings array is provided, the movie should be created as normal.
| title required | string |
| rating required | string |
| description required | string |
| runtimeMins required | integer |
Array of objects |
{- "title": "Dodgeball",
- "rating": "PG-13",
- "description": "The greatest movie ever made.",
- "runtimeMins": 126,
- "screenings": [
- {
- "screenNumber": 5,
- "capacity": 40,
- "startsAt": "2023-03-19 11:30:00+00:00"
}
]
}{- "status": "success",
- "data": {
- "id": 1,
- "title": "Dodgeball",
- "rating": "PG-13",
- "description": "The greatest movie ever made.",
- "runtimeMins": 126,
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
}{- "status": "success",
- "data": [
- {
- "id": 1,
- "title": "Dodgeball",
- "rating": "PG-13",
- "description": "The greatest movie ever made.",
- "runtimeMins": 126,
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
]
}Update an existing movie. If any field is not provided, the original value should not be changed. Any combination of fields can be updated.
| id required | integer The ID of the movie to update |
| title | string |
| rating | string |
| description | string |
| runtimeMins | integer |
{- "title": "Dodgeball",
- "rating": "PG-13",
- "description": "The greatest movie ever made.",
- "runtimeMins": 126
}{- "status": "success",
- "data": {
- "id": 1,
- "title": "Dodgeball",
- "rating": "PG-13",
- "description": "The greatest movie ever made.",
- "runtimeMins": 126,
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
}Delete an existing movie. When deleting a movie, all of its screenings should also be deleted.
| id required | integer The ID of the movie to delete |
{- "status": "success",
- "data": {
- "id": 1,
- "title": "Dodgeball",
- "rating": "PG-13",
- "description": "The greatest movie ever made.",
- "runtimeMins": 126,
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
}Create a screening for an existing movie.
| id required | integer The ID of the movie to create a screening for |
| screenNumber required | integer |
| capacity required | integer |
| startsAt required | string <DateTime> |
{- "screenNumber": 5,
- "capacity": 40,
- "startsAt": "2023-03-19 11:30:00+00:00"
}{- "status": "success",
- "data": {
- "id": 1,
- "screenNumber": 5,
- "capacity": 40,
- "startsAt": "2023-03-19T11:30:00.000+00:00",
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
}Get a list of every screening for a movie.
| id required | integer The ID of the movie to retrieve the screenings for |
{- "status": "success",
- "data": [
- {
- "id": 1,
- "screenNumber": 5,
- "capacity": 40,
- "startsAt": "2023-03-19T11:30:00.000+00:00",
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
]
}Create a new ticket for a particular customer and screening.
| customerId required | integer The ID of the customer to create the ticket for |
| screeningId required | integer The ID of the screening to create the ticket for |
| numSeats required | integer |
{- "numSeats": 3
}{- "status": "success",
- "data": {
- "id": 1,
- "numSeats": 3,
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
}Get a list of every ticket a customer has booked for a screening.
| customerId required | integer The ID of the customer the ticket is for |
| screeningId required | integer The ID of the screening the ticket is for |
{- "status": "success",
- "data": [
- {
- "id": 1,
- "numSeats": 3,
- "createdAt": "2023-03-14T11:01:56.633+00:00",
- "updatedAt": "2023-03-14T11:01:56.633+00:00"
}
]
}