- Docker@24.0.5
- apache-maven@3.9.5 (переменная PATH должна содержать "./apache-maven-3.9.5/bin")
Открыть в терминале папку ./src/main/docker и выполнить команду:
docker-compose up
При запущенном приложении открыть в терминале папку ./library и выполнить команду:
mvn test
- Тесты книг и читателей
- Добавление книги
- Добавление книги, которая уже была добавлена
- Поиск книги с неверным id
- Добавление читателя
- Поиск читателя с неверным id
- Тесты событий
- Поиск события с неверным id
- Добавление события "TAKE"
- Добавление события "TAKE", когда количество требуемой книги равно 0
- Добавление события "RETURN"
- Добавление события "TAKE" с неверными id книги и читателя
- Тесты лучшей книги и лучшего читателя
- Поиск лучшей книги
- Поиск лучшего читателя
- Поиск лучшей книги с какого-то времени
- Поиск лучшего читателя с какого-то времени
- Тесты метода "DELETE"
- Удаление события
- Удаление читателя
- Удаление книги
Приложение состоит из 3-х таблиц (readers, books, events), взаимодействие с ними представлено в виде отправки запросов на соответствующие адреса
name - имя, surname - фамилия, from - от, to - до
Вывод всех читателей из таблицы.
/readers
Вывод всех читателей из таблицы, содержащих в соответствующих полях значения параметров name и surname без учета регистра.
/readers?name=XXX&surname=XXX
Вывод читателя по конкретному id.
/readers/{id}
Вывод самого читающего читателя за конкретный отрезок времени (от from до to). Все параметры опциональны, при их отсутствии выводится самый читающий читатель за все время.
Время указывается в формате yyyy-MM-dd'T'HH:mm:ss.SSSZ (пример: 2023-07-01T14:59:55.711+0000)
/readers/top?from=XXX&to=XXX
При добавлении читатель получает случайный id
Добавление читателя с указанными значениями name и surname
/readers?name=XXX&surname=XXX
Редактирование name и/или surname пользователя с конкретным id. Все параметры опциональны.
/readers/{id}?name=XXX&surname=XXX
Удаление читателя по конкретному id.
/readers/{id}
title - название, author - автор, quantity - количество, from - от, to - до
Вывод всех книг из таблицы.
/books
Вывод всех книг из таблицы, содержащих в соответствующих полях значения параметров title и author без учета регистра.
/books?title=XXX&author=XXX
Вывод книги по конкретному id.
/books/{id}
Вывод самой популярной книги за конкретный отрезок времени (от from до to). Все параметры опциональны, при их отсутствии выводится самая популярная книга за все время.
Время указывается в формате yyyy-MM-dd'T'HH:mm:ss.SSSZ (пример: 2023-07-01T14:59:55.711+0000)
/books/top?from=XXX&to=XXX
При добавлении книга получает случайный id
Добавление книги с указанными значениями title, author и quantity. Параметр quantity опциональный, значение по умолчанию равно 1.
/books?title=XXX&author=XXX&quantity=XXX
Редактирование title и/или author и/или quantity книги с конкретным id. Все параметры опциональны.
/books/{id}?title=XXX&author=XXX&quantity=XXX
Удаление книги по конкретному id.
/books/{id}
action (TAKE/RETURN) - действие (взял/вернул), bookid - идентификатор книги, readerid - идентификатор читателя, time - время события
Вывод всех событий из таблицы.
/events
Вывод события по конкретному id.
/events/{id}
При добавлении событие получает случайный id, time равно дате и времени создания события
Добавление события с указанными значениями bookid, readerid, type.
/events?bookid=XXX&readerid=XXX&type=TAKE/RETURN
Удаление события по конкретному id.
/events/{id}