/api_final_yatube

Практическое задание для тренировки навыков DRF

Primary LanguagePython

Проект «API для Yatube»

Краткое описание

Практическое задание для тренировки навыков 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

License

MIT