Данный проект представляет собой RESTful API для сервиса управления заметками, реализованный с использованием Django REST Framework (DRF). API поддерживает функции регистрации и авторизации пользователей с использованием JWT аутентификации, а также предоставляет возможность создания, получения, редактирования и удаления заметок.
- Python 3.8 или выше
- pip
- Django 3.2 или выше
- Django REST Framework
- djangorestframework-simplejwt для работы с JWT
-
Клонируйте репозиторий: bash git clone https://github.com/ваш_репозиторий.git cd ваш_репозиторий
-
Создайте виртуальное окружение: python -m venv venv source venv/bin/activate # Для Windows используйте venv/Scripts/activate
-
Установите зависимости из requirements.txt: pip install -r requirements.txt
-
Настройте базу данных:
В файле settings.py настройте параметры подключения к вашей базе данных (например, PostgreSQL, SQLite и т.д.). Так как основная конфигурация подключается из .env, пример его файла представлен в env_example.py
-
Примените миграции: python manage.py migrate
-
Запустите сервер: python manage.py runserver
POST /api/users/registration/
Тело запроса: { "user": { "username": "user1", "email": "user1@user.user", "password": "qweasdzxc" } }
Ответ: { { "user": { "email": "user1@user.user", "username": "user1", "token": "eyJ0eXAiOiJKV...." } } }
POST /api/users/login/
Тело запроса: { "user": { "email": "email@email.email", "username": "admin", "password": "aasdasdasd" } }
Ответ: { "user": { "email": "email@email.email", "username": "admin", "token": "eyJ0eXAiOiJKV1Q...." } }
PUT /api/user/update/
Заголовки: Authorization: Token access_token
Тело запроса: { "user": { "username": "Mash", "email": "mash@user.user", "password": "asdasda12sdadasd" } }
Ответ: { "user": { "email": "mash@user.user", "username": "Mash", "token": "eyJ0eXAiOiJK....." } }
POST /api/notes/create/
Заголовки: Authorization: Token access_token
Тело запроса:
{ "title": "Заголовок заметки", "content": "Содержимое заметки" }
Ответ: { "id": 1, "title": "Заголовок заметки", "content": "Содержимое заметки", "created_at": "2023-01-01T00:00:00Z", "updated_at": "2023-01-01T00:00:00Z" }
GET /api/notes/
Заголовки: Authorization: Token access_token
[ { "id": 1, "title": "Заголовок заметки", "content": "Содержимое заметки", "created_at": "2023-01-01T00:00:00Z", "updated_at": "2023-01-01T00:00:00Z" } ]
PUT /api/notes/int:pk/
Заголовки: Authorization: Token access_token
Тело запроса:
{ "title": "Обновленный заголовок", "content": "Обновленное содержимое" }
Ответ: { "id": 1, "title": "Обновленный заголовок", "content": "Обновленное содержимое", "created_at": "2023-01-01T00:00:00Z", "updated_at": "2023-01-02T00:00:00Z" }
DELETE /api/notes/int:pk/delete/
Заголовки: Authorization: Token access_token
Ответ: