bvsvrvb / praktikum-yatube-api

Яндекс Практикум. Yatube REST API.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Yatube REST API

Учебный проект Яндекс Практикум (курс Python-разработчик).

Описание

API-сервис для социальной сети Yatube, позволяющий настроить полное взаимодействие с социальной сетью через сторонний интерфейс. Аутентификация реализована с использованием JWT-токенов.

Технологии

Python Django SQLite Django REST Framework JSON Web Tokens

Доступные эндпоинты

  • api/v1/jwt/create/ (POST): передаём логин и пароль, получаем токен;
  • api/v1/jwt/refresh/ (POST): обновляем токен;
  • api/v1/jwt/verify/ (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;
  • api/v1/follow/ (GET, POST): получаем список всех подписок пользователя или подписываемся на другого пользователя.

Документация к API

Подробная документация к API будет доступна после запуска проекта по адресу:

http://127.0.0.1:8000/redoc/

Запуск проекта в Dev-режиме

Клонировать репозиторий и перейти в директорию проекта:

git clone https://github.com/bvsvrvb/praktikum-yatube-api.git
cd praktikum-yatube-api

Cоздать и активировать виртуальное окружение:

python -m venv venv
source venv/Scripts/activate

Установить зависимости из файла requirements.txt:

python -m pip install --upgrade pip
pip install -r requirements.txt

Перейти в директорию с manage.py и выполнить миграции:

cd yatube_api
python manage.py migrate

Создать суперпользователя для админ-панели:

python manage.py createsuperuser

Запустить сервер разработчика:

python manage.py runserver

About

Яндекс Практикум. Yatube REST API.


Languages

Language:Python 99.2%Language:HTML 0.8%