Практическое задание для тренировки навыков DRF.
Описание проекта В проекте созданы следующие эндпоинты:
- Передача логина и пароля, получение токена. (POST)
/api/v1/jwt/create/
- Передача логина и пароля, обновление токена. (POST)
api/v1/refresh/
- Передача логина и пароля, проверка токена. (POST)
api/v1/verify/
- Получение списка всех постов или создание нового поста. (GET, POST)
api/v1/posts/
- Получение, редактирование или удаление поста по id. (GET, PUT, PATCH, DELETE)
api/v1/posts/{post_id}/
- Получение списка всех групп. (GET)
api/v1/groups/
- Получение информации о группе по id. (GET)
api/v1/groups/{group_id}/
- Получение списка всех комментариев поста с id=post_id или создание нового, указав id поста, который хотим прокомментировать. (GET, POST)
api/v1/posts/{post_id}/comments/
- Получение, редактирование или удаление комментария по id у поста с id=post_id (GET, PUT, PATCH, DELETE)
api/v1/posts/{post_id}/comments/{comment_id}/
- Подписки на авторов (GET, POST). Нельзя подписаться на себя, а также реализована проверка на подписку (нельзя подписаться дважды)
api/v1/follow/
- Эндпоинт: POST .../api/v1/posts/14/comments/ Пример запроса:
{
"text": "тест тест"
}
Пример ответа:
{
"id": 4,
"author": "anton",
"post": 14,
"text": "тест тест",
"created": "2021-06-01T10:14:51.388932Z"
}
- Эндпоинт: GET .../api/v1/groups/2/ Пример ответа:
{
"id": 2,
"title": "Математика",
"slug": "math",
"description": "Посты на тему математики"
}
- Эндпоинт: POST .../api/v1/posts/ Пример запроса:
{
"text": "Вечером собрались в редакции «Русской мысли», чтобы поговорить о народном театре. Проект Шехтеля всем нравится.",
"group": 1
}
Пример ответа:
{
"id": 14,
"text": "Вечером собрались в редакции «Русской мысли», чтобы поговорить о народном театре. Проект Шехтеля всем нравится.",
"author": "anton",
"image": null,
"group": 1,
"pub_date": "2021-06-01T08:47:11.084589Z"
}
- Клонировать git по текущему адресу;
- Установить вирутальное окружение;
- Установить зависимости из requirements.txt;
- В папке с файлом manage.py с помощью коносли запустить команду python manage.py runserver;
- Наслаждаться.
dvkonstantinov
MIT