Skip to content

RolAlek/api_blog_portal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blog portal(API)

Описание

Приложение позволяет просматривать и создовать публикации, а также оставлять коментарии к ним. Также реализованна возможность тегирования публикаций по категироиям (управление категориями доступно администратору блога) и возможность подписываться на интересующих авторов. В сервисе реализованна авторизация по JWT-токену. Присутствует система разграничения доступа:

Анонимные пользователи:

  • Просмотр любых публикаций;

Зарегистрированные пользователи:

  • Список собственных подписок;
  • Публикация записей и коментариев;
  • Управление собственным контентом(изменение/удаление).

Администратор:

  • Все выше перечисленное;
  • Создание тематических групп(категорий);
  • Модерирование контента(изменение/удаление публикаций других пользователей);
  • Удаление и декативация пользователей, присвоение прав администратора.

Системные требования:

Python 3.9, Django REST Framework 3.12

Установка и запуск

Обратите внимание: указанные команды приведены для Unix-систем(MacOS/Linux). Команды для Windows могут отличаться!

Клонируйте git-репозиторий выполнив команду в терминале:

git clone https://github.com/RolAlek/api_final_yatube.git

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

python -m venv <название_окружения>
source <название_окружения>/bin/activate

Обновите менеджер пакетов pip и примените зависимости из файла requirements.txt:

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

Примените миграции:

python manage.py migrate

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

python manage.py runserver

Примеры некоторых запросов

Полуение публикаций

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
}

В случае успеха сервер вернет ответ с кодом 200:

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

Примеры неудачных запросов:

Ответ с кодом 400 - неправильно составлен запрос:

{
  "text": [
    "Обязательное поле."
  ]
}

Ответ с кодом 401 - запрос выполнен неавторизованным пользователем:

{
  "detail": "Учетные данные не были предоставлены."
}

About

api final yatube

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published