Это 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-разработчик