Создание контента и страниц выполняется через стандартную django админку. Привязка контента к странице выполнена inline блоком на странице "страницы" :) Для контента можно задавать порядок расположения на странице, это влияет на сортировку контента в выдаче API.
В админке работает поиск по title страницы и контента.
Увеличение счетчика просмотров выполняется в фоновой задаче при помощи celery и redis. Атомарность этой операции обеспечена использованием select_for_update для соответсвующих строк.
Для расширения функциональности необходимо создать новый класс ContentSomething, унаследованный от ContentBase и зарегистрировать его в админке.
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
sudo apt-get install redis
- В каталоге проекта:
./manage.py migrate
- В каталоге проекта:
./manage.py createsuperuser
- В каталоге проекта:
./manage.py test
- В каталоге проекта:
celery -A nl worker -l info --pool=solo
- GET /api/v1/pages/ - Возвращает список страниц с URL на конкретную страницу; Работает пагинация;
- GET /api/v1/pages/<page_id>/ - Возвращает детальную информацию о странице, содержащую в себе контент, размещенный на странице. Обращение к странице увеличивает счетчик counter для контента.