Социальная сеть с возможность создать учетную запись, публиковать записи, подписываться на любимых авторов, комментировать и отмечать понравившиеся записи.
Полное описание API http://api.yatube.aveter77.site/redoc/
Эндпоинты http://api.yatube.aveter77.site/api/v1/
Образ на Dockerhub
Пользователь отправляет POST-запрос на эндпоинт /api/v1/jwt/create/
с параметрами
{
"username": "string",
"password": "string"
}
В ответе на запрос приходит:
refresh
для обновления токена. Для этого отправьте POST-запрос на/auth/jwt/create/
, в теле запроса в полеrefresh
передайте refresh-токен;access
токен, который надо будет передавать в заголовке каждого запроса, в полеAuthorization
. Перед самим токеном должно стоять ключевое словоBearer
и пробел.
- Python 3.7
- Django 2.2.16
- Django Rest Framework 3.12.4
- PostgreSQL 13.0
- gunicorn 20.0.4
- nginx 1.21.3
- Docker 20.10.17
- Docker Compose 2.9
Установите переменные среды, как в .env.example
.
cd infra/
docker-compose up -d
После запуска выполните команды:
docker-compose exec web python manage.py migrate
docker-compose exec web python manage.py createsuperuser
docker-compose exec web python manage.py collectstatic --no-input
cd infra/
cat fixtures.json | docker-compose exec -T web python manage.py loaddata --format=json -
Получение всех публикаций
[GET] /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] /api/v1/posts/
{
"text": "string",
"image": "string",
"group": 0
}
{
"id": 0,
"author": "string",
"text": "string",
"pub_date": "2019-08-24T14:15:22Z",
"image": "string",
"group": 0
}
Получение комментариев
[GET] /api/v1/posts/{post_id}/comments/
[
{
"id": 0,
"author": "string",
"text": "string",
"created": "2019-08-24T14:15:22Z",
"post": 0
}
]
Добавление комментария
[POST] /api/v1/posts/{post_id}/comments/
{
"text": "string"
}
{
"id": 0,
"author": "string",
"text": "string",
"created": "2019-08-24T14:15:22Z",
"post": 0
}
Александр Николаев
MIT