Skip to content

RomanBespalov/api_final_yatube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

api_final

Описание

Это проект "api yatube" предназначенный для взаимодействия бэкенда с внешними ресурсами, например, фронтенда или какого-либо приложения.

Это собственный API, через него с помощью JSON передаются запросы.

Как запустить проект

Клонировать репозиторий и перейти в него в командной строке:
git clone git@github.com:RomanBespalov/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

Запустить проект:

python3 manage.py runserver

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

  1. 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
    }
  ]
}
  1. GET http://127.0.0.1:8000/api/v1/posts/{post_id}/comments/
[
  {
    "id": 0,
    "author": "string",
    "text": "string",
    "created": "2019-08-24T14:15:22Z",
    "post": 0
  }
]

Задание

Добавить недостающие модели в приложении posts, создать адреса и представления для обработки запросов в приложении api. Документация — это ваше техническое задание.
Например, в проекте должна быть описана модель Follow, в ней должно быть два поля — user (кто подписан) и following (на кого подписан). Для этой модели в документации уже описан эндпоинт /follow/ и два метода:
GET — возвращает все подписки пользователя, сделавшего запрос. Возможен поиск по подпискам по параметру search
POST — подписать пользователя, сделавшего запрос на пользователя, переданного в теле запроса. При попытке подписаться на самого себя, пользователь должен получить информативное сообщение об ошибке. Проверка должна осуществляться на уровне API.
Анонимный пользователь на запросы к этому эндпоинту должен получать ответ с кодом 401 Unauthorized.
Сейчас ни самой модели Follow, ни обработчиков запросов в коде нет. Надо их написать.

Releases

No releases published

Packages

No packages published