Тестовый сервер содержит базу данных с таблицей Person. В таблице есть поля:
- ID (UUID4)
- Имя
- Фамилия
- Вектор (сериализованный массив float, необязательное поле)
Функционал сервера:
- Создание нового объекта Person (POST /api/v1/persons/) с указанием имени и фамилии в теле запроса. Ответ - ID созданного объекта.
- Получение ID всех созданных объектов (GET /api/v1/persons/).
- Получение информации об объекте по ID (GET /api/v1/persons/<person_id>/). Ответ содержит имя, фамилию, признак наличия или отсутствия вектора.
- Добавление вектора (PUT /api/v1/persons/, Content-Type: multipart/form-data) для объекта по его ID. Вектор получается из фотографии, изменив ее ширину и высоту на одинаковую величину (например 300x300, параметр должен быть конфигурируемым), разложив ее в одномерный массив и осуществив нормализацию (деление каждого элемента на 255).
- Сравнение двух векторов (GET /api/v1/persons/compare/). В запросе указывается ID первого и второго объекта, в ответе возвращается евклидово расстояние между векторами
- Удаление объекта по ID (DELETE /api/v1/persons/<person_id>/).