/api_final_yatube

API Yatube

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

api_final_yatube

Описание

Это api по сути является backend-приложением к проекту yatube (соц. сети), которое позволяет отправлять запросы (GET, POST, PATCH, PUT и DELETE) на сервер к базе данных приложения. С их помощью можно запросить список постов или авторизовавшись опубликовать собственный.

Инструменты и стек:** #Python #Django #API #RestFramework #JWTAuthentication #Djoser #Pillow #PyCharm #Postman

Возможности

Просмотр главной страницы постов с их количеством и пагинацией. GET http://127.0.0.1:8000/api/v1/posts/

{
  "count": 123,
  "next": "http://api.example.org/accounts/?offset=400&limit=100",
  "previous": "http://api.example.org/accounts/?offset=200&limit=100",
  "results": [
    {
      "id": 0,
      "author": "string",
      "text": "string",
      "pub_date": "2021-10-14T20:41:29.648Z",
      "image": "string",
      "group": 0
    }
  ]
}

Авторизованные пользователи могут создавать собственные посты. POST http://127.0.0.1:8000/api/v1/posts/

{
  "text": "string",
  "image": "string",
  "group": 0
}

Response samples

{
  "id": 0,
  "author": "string",
  "text": "string",
  "pub_date": "2019-08-24T14:15:22Z",
  "image": "string",
  "group": 0
}

Реализована возможность создавать пользователя и получать JWT-токен. POST http://127.0.0.1:8000/api/v1/jwt/create/

{
  "username": "string",
  "password": "string"
}

Response samples

{
  "refresh": "string",
  "access": "string"
}

Можно комментировать посты и подписываться на авторов. POST http://127.0.0.1:8000/api/v1/follow/

{
  "following": "string"
}

Response samples

{
  "user": "string",
  "following": "string"
}

POST http://127.0.0.1:8000/api/v1/posts/{post_id}/comments/

{
"text": "string"
}

Response samples

{
  "id": 0,
  "author": "string",
  "text": "string",
  "created": "2019-08-24T14:15:22Z",
  "post": 0
}

Как запустить проект

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

git clone https://github.com/AxeUnder/api_final_yatube.git
cd api_final_yatube

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

python3 -m venv env
source env/bin/activate

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

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

Выполнить миграции:

python3 manage.py migrate

Запустить проект:

cd yatube_api
python3 manage.py runserver

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

Вывод списка постов: /api/v1/posts/

Детали поста: /api/v1/posts/{post_id}/

Вывод списка комментариев к посту: /api/v1/posts/{post_id}/comments/

Документация: /redoc/

Об авторе

Python-разработчик

AxeUnder.