- Реализованны все хендлеры
- Написаны юнит тесты
- Реализована swagger спецификация - подход code-first
make build
make run
Если запускаете приложение первый раз - отправьте запрос на /migrate-up, чтобы инициализировать таблицы базы данных
Чтобы просмотреть спецификацию - запустите приложение и откройте ссылку
http://localhost:3000/swagger/index.html
{
"version": 1
}
{
"name": "Katya",
"username": "Katya@",
"password": "qwerty"
}
{
"name": "Katya",
"username": "admin_Katya@",
"password": "qwerty"
}
{
"id": 1,
"message": "User is created"
}
Если имя пользователя начинается на admin, то пользователь будет обладать правами администрора, иначе - пользователя
{
"username": "admin_Katya@",
"password": "qwerty"
}
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTA4MTAzMzYsImlhdCI6MTcxMDc2NzEzNiwidXNlcl9pZCI6MSwiVXNlclJvbGUiOiJhZG1pbiJ9.IstnvOXayUxlLVP8eEN1wvjVRWqTapoZsAkdGmEXvoY"
}
Возращается токен, котоырй нужно подставить в заголовок Authorization, Bearer Token
Возвращает список всех актеров
[
{
"actor_id": 1,
"actor_name": "Alan Rickman",
"actor_gender": "male",
"actor_birthday": "1946-01-01",
"movies": [
{
"Id": 2,
"Name": "Сумерки 99",
"Description": "Кино для абстрактных мужчин",
"Date": "2012-10-10T00:00:00Z",
"Rate": 0
},
{
"Id": 3,
"Name": "Сумерки 4",
"Description": "Кино для настоящих мужчин",
"Date": "2012-10-10T00:00:00Z",
"Rate": 0
}
]
},
{
"actor_id": 2,
"actor_name": "Skarlette Johnason",
"actor_gender": "female",
"actor_birthday": "1984-01-01",
"movies": [
{
"Id": 3,
"Name": "Сумерки 4",
"Description": "Кино для настоящих мужчин",
"Date": "2012-10-10T00:00:00Z",
"Rate": 0
}
]
},
{
"actor_id": 3,
"actor_name": "Jody Foster",
"actor_gender": "female",
"actor_birthday": "1989-01-01",
"movies": [
{
"Id": 3,
"Name": "Сумерки 4",
"Description": "Кино для настоящих мужчин",
"Date": "2012-10-10T00:00:00Z",
"Rate": 0
}
]
}
]
Возвращает список всех фильмов
{
"sort_by": "a.birthday"
}
[
{
"movie_id": 2,
"movie_name": "Сумерки 99",
"movie_description": "Кино для абстрактных мужчин",
"movie_date": "2012-10-10T00:00:00Z",
"movie_rate": 0,
"actors": [
{
"id": 1,
"name": "Alan Rickman",
"gender": "male",
"Birthday": "1946-01-01"
}
]
},
{
"movie_id": 3,
"movie_name": "Сумерки 4",
"movie_description": "Кино для настоящих мужчин",
"movie_date": "2012-10-10T00:00:00Z",
"movie_rate": 0,
"actors": [
{
"id": 1,
"name": "Alan Rickman",
"gender": "male",
"Birthday": "1946-01-01"
},
{
"id": 2,
"name": "Skarlette Johnason",
"gender": "female",
"Birthday": "1984-01-01"
},
{
"id": 3,
"name": "Jody Foster",
"gender": "female",
"Birthday": "1989-01-01"
}
]
}
]
Возвращает список фильмов со всеми полями.
Возвращает список фильмов, по отрывку фильма и имени актера. Оба поля могут быть пустыми
{
"movie_pattern": "Сум",
"actor_pattern": "Val"
}
[
{
"movie_id": 3,
"movie_name": "Сумерки 4",
"movie_description": "Кино для настоящих мужчин",
"movie_date": "2012-10-10T00:00:00Z",
"movie_rate": 0,
"actors": [
{
"id": 4,
"name": "Valera ZHMA",
"gender": "male",
"Birthday": "1970-01-01"
},
{
"id": 5,
"name": "Valera Kruglov",
"gender": "male",
"Birthday": "1970-01-01"
}
]
}
]
Требуется токен
Добавляет актера
{
"name": "Valera Devyatkin",
"gender": "male",
"birthday": "1999-09-09"
}
{
"id": 5,
"message": "Actor is added"
}
Возвращает id актера и сообщение. В случае провала - код и описание ошибки
Добавляет актера в заданный фильм
{
"actor_id": 5,
"movie_id": 3
}
{
"message": "Actor 5 added to the movie 3"
}
Изменяет заданное поле у актера
{
"actor_id": 1,
"field": "name",
"new_value": "Valera"
}
{
"message": "Field is changed"
}
Удаляет актера из базы данных
{
"actor_id": 1
}
{
"message": "Actor is removed"
}
Добавляет фильм по названию, описанию, дате, рейтингу и списку актеров
{
"name": "Сумерки 4",
"description": "Кино для настоящих мужчин",
"date": "2012-10-10",
"rate": 0,
"actors": [1, 2, 3]
}
{
"id": 3,
"message": "Movie is added"
}
Возвращает id добавленного фильма
Удаляет фильма из базы данных
{
"movie_id": 1
}
{
"message": "Movie is removed"
}
Удаляет поле у заданного фильма из базы данных
{
"movie_id": 2,
"field": "date"
}
Удаление актера из фильма
{
"movie_id": 2,
"actor_id": 1
}
{
"message": "Field is removed"
}
Меняет поле у заданного фильма
{
"movie_id": 1,
"field": "name",
"new_value": "Sumerki"
}
{
"message": "Field is changed"
}