Skip to content

ElizavetaAanisimova/api_yatube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

api_yatube

Учебный проект на базе Yatube (с урезанным функционалом: остался только бэкенд(приложения, модели)) для тренировки реализации API для всех моделей приложения. API доступен только аутентифицированным пользователям. Использована аутентификация по токену TokenAuthentication. Аутентифицированный пользователь авторизован на изменение и удаление своего контента; в остальных случаях доступ предоставляется только для чтения. В ответ на запросы POST, PUT и PATCH API возвращает объект, который был добавлен или изменён.

Эндпоинты для взаимодействия

  • api/v1/api-token-auth/ (POST): передаём логин и пароль, получаем токен.
  • api/v1/posts/ (GET, POST): получаем список всех постов или создаём новый пост.
  • api/v1/posts/{post_id}/ (GET, PUT, PATCH, DELETE): получаем, редактируем или удаляем пост по id.
  • api/v1/groups/ (GET): получаем список всех групп.
  • api/v1/groups/{group_id}/ (GET): получаем информацию о группе по id.
  • api/v1/posts/{post_id}/comments/ (GET, POST): получаем список всех комментариев поста с id=post_id или создаём новый, указав id поста, который хотим прокомментировать. api/v1
  • posts/{post_id}/comments/{comment_id}/ (GET, PUT, PATCH, DELETE): получаем, редактируем или удаляем комментарий по id у поста с id=post_id.

Запуск проекта

  1. Клонирование репозитория
git clone git@github.com:ваш-аккаунт-на-гитхабе/api_yatube.git

Откройте в своем редакторе кода локальный проекта из репозитория GitHub, клонированного ранее

  1. Развертывание в репозитории виртуального окружения
python3 -m venv venv
  1. Запуск виртуального окружения
source venv/Scripts/activate
  1. Установка зависимостей в виртуальном окружении
pip install -r requirements.txt
  1. Выполнение миграций
python manage.py migrate
  1. Запуск проекта
python manage.py runserver

Технологии

  • Python3
  • Django REST Framework
  • API REST
  • Postman
  • SQLite3
  • Simple-JWT