Данный сервер предоставляет REST API для расписания занятий студентов Вятского государственного университета.
FLASK_ENV
- среда запуска: development
, testing
и production
. По
умолчанию development
.
REDIS_URL
- URL базы данных Redis в формате
redis://<user>:<password>@<host>:<port>/<database>
.
PDF2JSON_API_URL
- URL pdf2json-конвертера.
MONGODB_URI
- URI базы данных MongoDB в формате
mongodb://<user>:<password>@<host>:<port>/<database>
.
Поле <database>
обязательно.
Используется для ведения логов. В журнал записываются только запросы к API.
Коллекция: logs
.
Формат записи
{
"path": "<full URL path, string>",
"useragent": "<user agent, string>",
"date": "<timestamp of request, date>",
"status": "<response status code, number>"
}
python -m pytest --pyargs tests.unit
Конфигурация приложения для тестирования: config.py
Осторожно! Во время выполнения некоторых тестов данные в БД могут быть безвозвратно утеряны. Перед запуском тестов удостоверьтесь, что используете тестовую базу данных, а не основную.
python -m pytest --pyargs tests.integration
export FLASK_ENV=<ENV>
gunicorn -b 0.0.0.0:<PORT> wsgi:app
export FLASK_ENV=<ENV>
flask run
На сайте ВятГУ новое расписание занятий выкладывается каждые две недели. Для того, чтобы сервер всегда возвращал актуальное расписание, необходимо не реже, чем один раз в две недели обновлять информацию с сайта ВятГУ. Для этого нужно запустить следующий скрипт:
export FLASK_ENV=<ENV>
export REDIS_URL=<REDIS_URL>
export PDF2JSON_API_URL=<PDF2JSON_API_URL>
flask prefetch --force
Чтобы загрузить информацию только в том случае, если ее нет в БД, то
запустите скрипт без ключа --force
.
-
Собираем образ
docker build -t imagename .
-
Запускаем
docker run --name somename -d -p 8080:80 \ -e FLASK_ENV=<ENV> \ -e MONGODB_URI=<URI> \ -e REDIS_URL=<URL> \ -e PDF2JSON_API_URL=<PDF2JSON_API_URL> \ imagename