Проект API

Ваша задача — дописать код и привести его в соответствие с документацией: добавить недостающие модели в приложении 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, но выбор решения за вами.




Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: