Git Product home page Git Product logo

api_final_yatube's Introduction

api_final

Описание

REST API для работы с веб-сайтом YaTube.

Позволяет просматривать, добавлять, редактировать и удалять следующие ресурсы:

  • посты
  • комментарии к постам
  • подписки на авторов (только в режиме чтения и создания)
  • группы (только в режиме чтения)

Права на использование API

  • Просмотр групп, постов и комментариев к ним доступен всем пользователям.

  • Создание постов и комментариев, подписка на авторов и просмотр подписок доступно авторизованным пользователям.

  • Редактирование и удаление постов и комментариев доступно авторам контента.

Виды запросов к API

  1. Эндпойнт api/v1/jwt/create/
    • GET - получение JWT-токена
  2. Эндпойнт api/v1/jwt/refresh/
    • GET - обновление JWT-токена
  3. Эндпойнт api/v1/jwt/verify/
    • GET - проверка JWT-токена
  4. Эндпойнт api/v1/posts/
    • GET - получение списка постов (возможна пагинация при указаниии параметров limit и offset)
    • POST - создание нового поста
  5. Эндпойнт api/v1/posts/{post_id}/
    • GET - получение поста с указанным id
    • PUT - полное изменение поста
    • PATCH - частичное изменение поста
    • DELETE - удаление поста
  6. Эндпойнт api/v1/posts/{post_id}/comments/
    • GET - получение списка комментариев для поста с указанным id
    • POST - создание нового нового комментария для поста с указанным id
  7. Эндпойнт api/v1/posts/{post_id}/comments/{id}/
    • GET - получение комментария с указанным id
    • PUT - полное изменение комментария
    • PATCH - частичное изменение комментария
    • DELETE - удаление комментария
  8. Эндпойнт api/v1/groups/
    • GET - получение списка доступных сообществ
  9. Эндпойнт api/v1/groups/{id}/
    • GET - получение информации о сообществе по id
  10. Эндпойнт api/v1/follow/
    • GET - все подписки пользователя, сделавшего запроc (возможен поиск по параметру searc)
    • POST - подписка на автора (нельзя дублировать подписки и подписываться на самого себя)

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

Получение списка всех постов:

Method: GET
Endpoint: "/api/v1/posts/"

Публикация поста:

Method: POST
Endpoint: "/api/v1/posts/"
Payload:
{
    "text": "string",
    "group": 0
}

Получение JWT-токена:

Method: POST
Endpoint: "/api/v1/auth/jwt/create/"
Payload:
{
    "username": "string",
    "password": "string"
}

Установка

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

git clone https://github.com/lockwod/api_final_yatube.git
cd api_final_yatube

Cоздать и активировать виртуальное окружение:

python -m venv env
source venv/scripts/activate

Установить зависимости из файла requirements.txt:

pip install -r requirements.txt

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

python manage.py runserver

api_final_yatube's People

Contributors

yandex-praktikum avatar turbokach avatar lockwod avatar a-ershov avatar

Watchers

 avatar

api_final_yatube's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.