Ваша задача — дописать код и привести его в соответствие с документацией: добавить недостающие модели в приложении posts, создать адреса и представления для обработки запросов в приложении api. Документация — это ваше техническое задание.
Например, в проекте должна быть описана модель Follow, в ней должно быть два поля — user (кто подписан) и following (на кого подписан). Для этой модели в документации уже описан эндпоинт /follow/ и два метода:
- GET — возвращает все подписки пользователя, сделавшего запрос. Возможен поиск по подпискам по параметру search
- POST — подписать пользователя, сделавшего запрос на пользователя, переданного в теле запроса. При попытке подписаться на самого себя, пользователь должен получить информативное сообщение об ошибке. Проверка должна осуществляться на уровне API.
Анонимный пользователь на запросы к этому эндпоинту должен получать ответ с кодом 401 Unauthorized.
Сейчас ни самой модели Follow, ни обработчиков запросов в коде нет. Надо их написать.
Описание проекта: README.md
Выполненный проект должен сопровождаться описанием.
Обязательный минимум — файл README.md, его сохраняют в корневой директории репозитория. Обычно он содержит несколько разделов:
- Описание. Что это за проект, какую задачу он решает, в чём его польза;
- Установка. Как развернуть проект на локальной машине;
- Примеры. Некоторые примеры запросов к API.
Заполнять README.md удобно прямо на GitHub. В файлах *.md для форматирования текста (для добавления заголовков, оформления ссылок, выделения текста жирным или курсивом) разрешена разметка Markdown. Не пренебрегайте ей, это улучшит читабельность вашего текста.
Ключевые моменты
- Применяйте вьюсеты.
- Для аутентификации используйте JWT-токены.
- У неаутентифицированных пользователей доступ к API должен быть только на чтение. Исключение — эндпоинт /follow/: доступ к нему должен предоставляться только аутентифицированным пользователям.
- Аутентифицированным пользователям разрешено изменение и удаление своего контента; в остальных случаях доступ предоставляется только для чтения.
- Добавление новых пользователей через API не требуется.
Подсказки
- Для проверки прав в DRF удобно использовать пермишены. При необходимости пишите и применяйте собственные классы разрешений.
- При описании вьюсетов для некоторых моделей имеет смысл наследоваться от собственного базового вьюсета. Не пренебрегайте этой возможностью.
- Работу с JWT-токенами удобно организовать при помощи библиотеки Djoser, но выбор решения за вами.