Сервис написан на Flask 2.0.1
-
/login?phone=<телефон> GET запрос с номером телефона:
http://localhost:5000/login?phone=+71111111111 Content-Type: application/json
В ответ должен прийти 6-значный код:
{ "code": "M6NCHN" }
-
/login POST запрос вида:
POST http://localhost:5000/login Content-Type: application/json { "phone": "+71111111111", "code": "M6NCHN" }
Если код верный, в ответ должен прийти:
{"status": "OK"}
и если код не верный.
{"status": "Fail"}
Можно хранить коды для авторизации в коде, не используя базу данных или кэш хранилища для этого
-
/structure GET запрос
GET http://localhost:5000/structure Content-Type: application/json
В ответ должен прийти словарь с количеством каждого типа HTML-тэгов для сайта freestylo.ru
{ "body": 1, "div": 1, "head": 1, "html": 1, "img": 1, "link": 13, "meta": 5, "noscript": 2, "script": 21, "style": 1 }
-
/structure?link=<ссылка> То же, что и выше, но теперь сайт задается в запросе
-
/structure?link=<ссылка>&tags=html,img То же что и выше, но теперь помимо ссылки задается массив тэгов через запятую, которые нужно вернуть в ответе
-
/check_structure POST запрос вида:
POST http://localhost:5000/check_structure Content-Type: application/json { "link": "http://freestylo.ru", "structure": { "body": 1, "div": 1, "head": 1, "html": 1, "img": 1, "link": 13, "meta": 5, "noscript": 2, "script": 21, "style": 1 } }
Который для данный ссылки проверяет структуру html тэгов. Если все верно, в ответ должно приходить:
{"is_correct": True}`
если есть ошибки:
{"is_correct": False, "difference": {"p": 2, "img": 1}}
где difference - это разница структур. Например, если верная структура -
{"html": 1, "head": 1, "body": 1, "p": 4}
а передавалась структура{"html": 1, "head": 1, "body": 1, "p": 2, "img": 1}
то разница будет{"p": 2, "img": 1}
- Запуск приложения в docker:
docker-compose up -d
- Запуск тестов в контейнере:
docker exec tardis pytest