Giter Site home page Giter Site logo

api_final_yatube's Introduction

Задание: разработать REST API для Yatube.

Документация: http://127.0.0.1:8000/redoc/

Возможности ✨:

  • Создание пользователя.
  • Получение токена аутентификации пользователя.
  • Просмотр списка публикаций и информации о конкретной публикации.
  • Размещение и изменение публикаций с возможностью указания группы.
  • Просмотр всех комментариев к конкретной публикации и отдельного комментария.
  • Размещение и редактирование комментариев.
  • Просмотр списка существующих групп и информации об конкретной группе.
  • Возможность подписаться на конкретного автора и увидеть список подписок.

Стек 💻:

  • Python 3.7
  • Django Rest Framework 3.2
  • SQLite
  • Djoser 4.8
  • Pillow 9.3

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

  1. Клонировать репозиторий и перейти в него в командной строке:
git clone [email protected]:4kolesov/api_final_yatube.git
cd api_final_yatube
  1. Cоздать и активировать виртуальное окружение:
python -m venv env
source env/bin/activate
  1. Обновить pip (опционально)
python -m pip install --upgrade pip
  1. Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
  1. Перейти в директорию с файлом manage.py и выполнить миграции:
cd yatube_api
python3 manage.py migrate
  1. В директории с файлом manage.py запустить проект
python manage.py runserver

Использование 💡:

GET Получение публикаций api/v1/posts/ Получить список всех публикаций. При указании параметров limit и offset выдача должна работать с пагинацией. Статус код 200:

{
  "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/{post_id}/comments/ Добавление нового комментария к публикации. Анонимные запросы запрещены. Статус код 200:

Запрос:

{
"text": "string"
}

Ответ сервера:

{
"id": 0,
"author": "string",
"text": "string",
"created": "2019-08-24T14:15:22Z",
"post": 0
}

Статус код 404:

{
"detail": "Страница не найдена."
}

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.