- Документация: https://gazprom-test-task-jokes.readthedocs.io.
Показать умение ведения полного пайпалайна разработки Web API, что включает в себя: разработку сервера, документацию, тестирование и развертку системы.
Написать многопользовательский REST-сервис предоставляющий следующие эндпоинты:
- Регистрация пользователя. Пользователь должен иметь возможность передать желаемый username, при этом он должен быть уникальным (другой пользователь не может зарегистрироваться с таким же именем).
- Создать шутку, передав её сервису и сохранить в список “моих” шуток.
- Сгенерировать шутку, получив её от внешнего сервиса и сохранить в список “моих” шуток.
- Получить шутку по ID. При этом нельзя получить шутку другого пользователя.
- Посмотреть список “моих” шуток.
- Обновить текст своей шутки.
- Удалить свою шутку.
Сервис должен также сохранять информацию о запросах - время обращения, данные пользователя, адрес пользователя.
В качестве генератора шуток можно использовать любой публично доступный API. Например, geek-jokes ( https://geek-jokes.sameerkumar.website/api ).
- Приложение должно быть написано на Python 3.
- Приложение должно представлять из себя REST API интерфейс для работы с шутками.
- Приложение должно быть покрыто тестам.
- Приложение должно быть подготовлено к локальной сборке и развертыванию с использованием Docker.
- В приложение должны быть внедрены пайалайны для CI/CD, в частности автоматизированный прогон тестов и обновление testcov badge, сборка приложения в контейнер, развертывание приложения на сервере.
- Приложение должно сопровождаться документацией.
- Исходный код приложения необходимо предоставить в виде ссылки на GitHub / GitLab.
- В качестве хранилища данных предлагается использовать технологии Elasticstash
This package was created with Cookiecutter and the harshanarayana/cookiecutter-sanic project template.
This project enables automated version management using bumpversion and gitchangelog projects.