/add- Метод регистрирует пару. Принимает два значения: phrase (string) и region (string), возвращает id добавленной пары. Если пара была в системе ранее то вернется существующее ранее id, если она новая, то значения будут добавлены в базу данных и вернется id новой пары. После добавления дла пары каждый час будут считаться топ 5 объявлений и число объявлений.
/stat - Метод возвращает пары (временная_метка: счетчик_числа_объявлений). Число объявлений вычисляется каждый час и добавляется в базу данных в таблицу TimeStamps. На вход методу подается id (string) пары, зарегистрированной в системе
/get_top - Метод возвращает список ссылок на топ-5 объявлений. Принимает id (string) пары, которая зарегистрированна в системе
Примеры работы методов:
При вызове /add("Диван", "Москва") вернется результат:
Для сбоки и запуска нужно выполнить команду docker-compose up (можно и даже лучше docker-compose up --build).
После чего будут загружены все нужные библиотеки,
chromedriver, google chrome, созданы таблицы в базе данных.
Сам API использует 80ый порт.
Сборка Docker была проверена на Ubuntu.
Тесты:
API было протестировано на 600 запросах add/, из которых некоторые имели 0 объявлений и некоректные регионы, на 600 stat/, и на 400 get_top/.
Тесты можно посмотреть в папке tests
Для тестирования использовалась библиотека pytest и плагин -cov