Skip to content

offon/yamdb_final

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

workflow

Описание

Программа для создания небольших постов, с возможностью объединять их в группы, оставлять коментарии и подписываться на понравившего автора. В данной реализации выполнена на REST_API

Версия программы: v1

Установка

Клонировать репозиторий и перейти в него в командной строке:

git clone https://github.com/yandex-praktikum/kittygram2plus.git

Переходим в папку проекта

cd yatube_api

Запустите docker-compose командой:

 docker-compose up.

Выполните по очереди команды:

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 

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

  • Получить JWT-токен
POST /api/v1/jwt/create/

Содержание запроса:

{
  "username": "string",
  "password": "string"
}

Содержание ответа:

{
  "access": "string"
}
  • Получение публикаций Получить список всех публикаций. При указании параметров limit и offset выдача должна работать с пагинацией.
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
}
  • Получение комментариев Получение всех комментариев к публикации. post_id (required) - id публикации
GET api/v1/posts/{post_id}/comments/

Содержание ответа:

[
  {
    "id": 0,
    "author": "string",
    "text": "string",
    "created": "2019-08-24T14:15:22Z",
    "post": 0
  }
]
  • Добавление комментария Добавление нового комментария к публикации. Анонимные запросы запрещены. post_id (required) - id публикации, text (required) - string (текст комментария)
POST api/v1/posts/{post_id}/comments/

Содержание ответа:

{
  "text": "string"
}
  • Список сообществ Получение списка доступных сообществ.
GET api/v1/groups/

Содержание ответа:

[
  {
    "id": 0,
    "title": "string",
    "slug": "string",
    "description": "string"
  }
]
  • Информация о сообществе Получение информации о сообществе по id. id(required) - id сообщества
POST api/v1/groups/{id}/

Содержание ответа:

[
  {
    "id": 0,
    "title": "string",
    "slug": "string",
    "description": "string"
  }
]
  • Вся информация о доступных запросах [/reDoc]