Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRUD для Yatube

Python Django Pytest Postman

Яндекс Практикум. Спринт 8. Итоговый проект. CRUD для Yatube.

Описание

CRUD для проекта социальной сети Yatube.

Функционал

  • Реализован REST API для сервиса публикации постов, Yatube;
  • Аутентификация по JWT-токену;
  • Работает со всеми модулями Yatube: постами, комментариями, группами и подписчиками.
  • Поддерживает методы GET, POST, PUT, PATCH, DELETE;
  • Предоставляет данные в формате JSON.

Установка

  1. Клонировать репозиторий:

    git clone https://github.com/egorcoders/api_yatube.git
  2. Перейти в папку с проектом:

    cd api_yatube/
  3. Установить виртуальное окружение для проекта:

    python -m venv venv
  4. Активировать виртуальное окружение для проекта:

    # для OS Lunix и MacOS
    source venv/bin/activate
    
    # для OS Windows
    source venv/Scripts/activate
  5. Установить зависимости:

    python3 -m pip install --upgrade pip
    pip install -r requirements.txt
  6. Выполнить миграции на уровне проекта:

    cd yatube
    python3 manage.py makemigrations
    python3 manage.py migrate

Аутентификация

  1. Выполнить POST-запрос к ручке http://localhost:8000/api/v1/token/ передав поля username и password.

  2. Получить от API JWT-токен в формате:

    {
      "refresh": "xxx",
      "access": "xxx"
    }
  3. В поле access вернётся токен. Данные в поле refresh будут необходимы для обновления токена.

  4. При отправке запроcов передать токен в заголовке Authorization: Bearer <токен>.

Примеры запросов

Результат POST-запроса с токеном пользователя на добавление нового поста:

  1. Пример запроса:

    {
        "text": "Текст",
        "group": 1
    }
  2. Пример ответа:

    {
        "id": 1,
        "text": "Текст",
        "author": "Имя",
        "image": null,
        "group": 1,
        "pub_date": "2022-05-11T08:47:10.084572Z"
    }

About

Яндекс Практикум. Проект 8-го спринта: CRUD для Yatube. Реализация API для всех моделей приложения posts с описанием моделей проекта Yatube.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages