Skip to content

The project was created at the beginning of learning the API. The REST API for Youtube has been created. A mobile application or chatbot will be able to work through this interface. It will also be possible to transfer data to any application or frontend through it.

Notifications You must be signed in to change notification settings

momtheprogram/api_yatube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

api_yatube

В проекте api_yatube реализовано API для всех моделей приложения.

API доступен только аутентифицированным пользователям. В проекте использована аутентификация по токену TokenAuthentication.
Аутентифицированный пользователь авторизован на изменение и удаление своего контента; в остальных случаях доступ предоставляется только для чтения. При попытке изменить чужие данные, вернётся код ответа 403 Forbidden.
Для модели Post использован ModelViewSet.
Для взаимодействия с ресурсами настроены такие эндпоинты:

  • api/v1/api-token-auth/ (POST): передаём логин и пароль, получаем токен.
  • api/v1/posts/ (GET, POST): получаем список всех постов или создаём новый пост.
  • api/v1/posts/{post_id}/ (GET, PUT, PATCH, DELETE): получаем, редактируем или удаляем пост по id.
  • api/v1/groups/ (GET): получаем список всех групп.
  • api/v1/groups/{group_id}/ (GET): получаем информацию о группе по id.
  • api/v1/posts/{post_id}/comments/ (GET, POST): получаем список всех комментариев поста с id=post_id или создаём новый, указав id поста, который хотим прокомментировать.
  • api/v1/posts/{post_id}/comments/{comment_id}/ (GET, PUT, PATCH, DELETE): получаем, редактируем или удаляем комментарий по id у поста с id=post_id.

В ответ на запросы POST, PUT и PATCH API возвращает объект, который был добавлен или изменён.

Примеры запросов

Пример POST-запроса с токеном Антона Чехова: добавление нового поста.

POST .../api/v1/posts/

{
    "text": "Вечером собрались в редакции «Русской мысли», чтобы поговорить о народном театре. Проект Шехтеля всем нравится.",
    "group": 1
}

Пример ответа:

{
    "id": 14,
    "text": "Вечером собрались в редакции «Русской мысли», чтобы поговорить о народном театре. Проект Шехтеля всем нравится.",
    "author": "anton",
    "image": null,
    "group": 1,
    "pub_date": "2021-06-01T08:47:11.084589Z"
}

Пример POST-запроса с токеном Антона Чехова: отправляем новый комментарий к посту с id=14.

POST .../api/v1/posts/14/comments/

{
    "text": "тест тест"
}

Пример ответа:

{
    "id": 4,
    "author": "anton",
    "post": 14,
    "text": "тест тест",
    "created": "2021-06-01T10:14:51.388932Z"
}

Пример GET-запроса с токеном Антона Чехова: получаем информацию о группе.

GET .../api/v1/groups/2/

Пример ответа:

{
    "id": 2,
    "title": "Математика",
    "slug": "math",
    "description": "Посты на тему математики"
}

About

The project was created at the beginning of learning the API. The REST API for Youtube has been created. A mobile application or chatbot will be able to work through this interface. It will also be possible to transfer data to any application or frontend through it.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages