Skip to content

REST-API для социальной сети в которой можно публиковать блоги и подписываться на авторов

Notifications You must be signed in to change notification settings

evgenii-erokhin/api_for_yatube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Учебный проект: написние API для соц.сети Yatube.

Проект создавался для отработки написания REST API. В проектет реализован CRUD, который позволяет создавать, удалять, редактировать свои посты, а также комментировать и просматривать чужие. Аутентификация реализована по токену TokenAuthentication.

В этом проекте исключен фронтенд и вью функции, весь функционал Yatube можно найти здесь.

Технологии:

Python Django DjangoREST

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

  1. Клонировать репозиторий и перейти в созданую дерикторию в командной строке:
    git clone [email protected]:evgenii-erokhin/api_for_yatube.git
    
    cd api_for_yatube
    
  2. Cоздать и активировать виртуальное окружение:
  • Если у вас Windows:
    python -m venv venv
    
    source venv/Scripts/activate
    
  • Если у вас Linux или macOS:
    python3 -m venv venv
    
    source venv/bib/activate
    
  1. Установоить зависимости:

    pip install -r requirements.txt
    
  2. Выполнить миграции:

    python manage.py migrate
    
  3. Запустить проект:

    python manage.py runserver
    

Примеры запросов для аутентифицированных пользователей:

  1. POST запрос на эндпоинт - http://127.0.0.1:8000/api/v1/posts/

    Тело запроса:

    {
     "text": "Текст поста.",
     "group": 1
    } 
    

    Ответ эндпоинта:

    {
    "id": 1,
    "text": "Текст поста 1.",
    "author": "superuser",
    "image": null,
    "group": 1,
    "pub_date": "2023-08-09T08:47:11.084589Z"
    } 
    
  2. GET запрос на эндпоинт - http://127.0.0.1:8000/api/v1/groups/3/

    Ответ эндпоинта:

    {
     "id": 3,
     "title": "Название группы 3",
     "slug": "slug-группы 3",
     "description": "Описание группы 3"
    } 
    

Примеры запросов для неаутентифицированных пользователей:

  1. GET запрос на эндпоинт - http://127.0.0.1:8000/api/v1/posts/

    [
    {
         "id": 1,
         "author": "superuser",
         "image": null,
         "text": "Текст поста 1.",
         "pub_date": "2023-08-09T08:47:11.084589Z",
         "group": 1
    },
    {
         "id": 2,
         "author": "test_user",
         "image": "http://127.0.0.1:8000/media/posts/photo_2023-08-08_12.14.10.jpeg",
         "text": "Текст поста 2.",
         "pub_date": "2023-08-09T12:10:21.084589Z",
         "group": null
     }
     ]
    
  2. GET запрос на эндпоинт http://127.0.0.1:8000/api/v1/groups/

    {
        "id": 1,
        "title": "Название группы 1",
        "slug": "slug-группы 1",
        "description": "Описание группы 1"
    },
    {
        "id": 2,
        "title": "Название группы 2",
        "slug": "slug-группы 2 ",
        "description": "Описание группы 2"
    } 
    

Контакты:

About

REST-API для социальной сети в которой можно публиковать блоги и подписываться на авторов

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published