Giter Club home page Giter Club logo

api_journals's Introduction

Описание проекта API_YATUBE:

В проекте реализован API для сервиса Yatube. Присутствуют модели для постов, сообществ, комментариев и подписок.

  • Представления реализованы на вьюсетах.

  • Для аутентификации использованы JWT-токены. Реализовано библиотекой djoser

  • У неаутентифицированных пользователей доступ к API только на чтение.

    Исключение — эндпоинт /follow/: доступ к нему предоставляется только после аутентификации.

  • Аутентифицированным пользователям разрешено изменение и удаление своего контента; в остальных случаях доступ предоставляется только для чтения.


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

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

git clone https://github.com/viator3m/api_journals.git
cd yatube_api

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

python3 -m venv venv
source venv/bin/activate
python3 -m pip install --upgrade pip

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

pip install -r requirements.txt

Выполнить миграции:

python3 manage.py migrate

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

python3 manage.py runserver

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

POST-запрос на создание нового пользователя

POST localhost:8000/api/v1/users/
Content-Type: application/json

{
  "username": "example_user",
  "password": "example_password"
}

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

{
    "email": "",
    "username": "test_user_4",
    "id": 5
}

POST-запрос на получение jwt-токена

POST localhost:8000/api/v1/jwt/create/
Content-Type: application/json

{
    "username": "example_user",
    "password": "example_password"
}

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

{
    "refresh": "eyJ0eXAiO...",
    "access": "eyJ0eXAiOi..."
}

GET-запрос на получение всех постов

GET localhost:8000/api/v1/posts/

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

[
  {
    "id": 1,
    "author": "admin",
    "text": "Test1",
    "pub_date": "2022-06-05T09:12:02.847270Z",
    "image": null,
    "group": 1
  },
]

POST-запрос на добавление публикации. В заголовке используется jwt-токен полученный под ключом access

POST localhost:8000/api/v1/posts/
Content-Type: application/json
Authorization: Bearer "eyJ0eXAiOi..."

{
  "text": "new_publication"
}

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

{
  "id": 5,
  "author": "admin",
  "text": "new_publication",
  "pub_date": "2022-06-05T10:23:24.450095Z",
  "image": null,
  "group": null
}

api_journals's People

Stargazers

 avatar  avatar

Watchers

 avatar

api_journals'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.