Сервис использует Postgres в качестве DB и Redis в качестве кэша. Запускается через docker compose up. Миграции через утилиту migrate или через docker.
Makefile:
Если через докер:
migrate_dock_up: docker run -v $(P)/db/migration:/migrations --network emtest_emtest migrate/migrate -path=/migrations/ -database 'postgres://emtest:emtest@postgres:5432/emtest?sslmode=disable' up
migrate_dock_down: docker run -v $(P)/db/migration:/migrations --network emtest_emtest migrate/migrate -path=/migrations/ -database 'postgres://emtest:emtest@postgres:5432/emtest?sslmode=disable' down -all
Передавать через переменную P абсолютный путь к папке с миграциями.
Отправляем json в следующем виде
{
"name": "Dmitriy",
"surname": "Ushakov",
"patronymic": "Vasilevich" // необязательно
}
Сервис получает дополнительную информацию, складывает ее в Postgres и кешарует в Redis на некоторое время, чтобы не делать повторных запросов по API. При повторном аналогичном запросе (имя) данные будут браться из кэша и ключ будет продлен.
Запрос с URL параметром (/person/{id}), указывающим на ID, по которому будет удален человек из базы данных
Запрос с URL параметром (/person/{id}) и телом в следующем виде
{
"name": "oleg",
"surname": "ko",
"nationality": "hehe"
}
Человек с данным ID будет изменен
Запрос с URL параметрами
страница для выдачи
элементов на странице
сортировка отфильтрованных позиций. Варианты:
age_asc - возраст, возрастающая
age_desc - возраст, убывающая
name_asc - имя, возрастающая
name_desc - имя, убывающая
nationality_asc - национальность, возрастающая
nationality_desc - национальность, убывающая
gender_asc - пол, возрастающая
gender_desc - пол, убывающая
surname_asc - фамилия, возрастающая
surname_desc - фамилия, убывающая
поиск по именам, можно добавлять больше пар с ключом name
поиск по фамилиям, можно добавлять больше пар с ключом surname
поиск по отчествам, можно добавлять больше пар с ключом patronymic
поиск по возрасту, можно добавлять больше пар с ключом age
поиск по национальности, можно добавлять больше пар с ключом nationality
поиск по полу
поиск возрасту, больше чем указаном в значении
поиск возрасту, меньше чем указаном в значении