Проект создавался для отработки написания REST API. В проектет реализован CRUD, который позволяет создавать, удалять, редактировать свои посты, а также комментировать и просматривать чужие. Аутентификация реализована по токену TokenAuthentication.
В этом проекте исключен фронтенд и вью функции, весь функционал Yatube можно найти здесь.
- Клонировать репозиторий и перейти в созданую дерикторию в командной строке:
git clone [email protected]:evgenii-erokhin/api_for_yatube.git
cd api_for_yatube
- Cоздать и активировать виртуальное окружение:
- Если у вас Windows:
python -m venv venv
source venv/Scripts/activate
- Если у вас Linux или macOS:
python3 -m venv venv
source venv/bib/activate
-
Установоить зависимости:
pip install -r requirements.txt
-
Выполнить миграции:
python manage.py migrate
-
Запустить проект:
python manage.py runserver
-
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" }
-
GET
запрос на эндпоинт - http://127.0.0.1:8000/api/v1/groups/3/Ответ эндпоинта:
{ "id": 3, "title": "Название группы 3", "slug": "slug-группы 3", "description": "Описание группы 3" }
-
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 } ]
-
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" }