Skip to content

Пример API приложения на FastApi с применением аутентификации и авторизации.

Notifications You must be signed in to change notification settings

DmitryAlexandrov91/fastapi_example

Repository files navigation

QRKot

Первое знакомство с фреймворком FastApi


▌ Описание ℹ️

Задача проекта QRKot - освоить фреймворк FastAPI. В результате работы было написано api-приложение с логикой инвестирования благотворительных проектов.


▌ Функции приложения

  • Регистрация, аутентифицация и авторизация пользователей
  • Создание благотворительных проектов (для суперпользователя)
  • Создание пожертвований (для зарегистрированных пользователей)
  • Автоматическое распределение свободных средств из пожертвований в благотворительные проекты
  • Создание отчёта по закрытым проектам в Google Sheets (для суперпользователя)

▌ Стек технологий

Backend

  • Python(FastAPI, SQLAlchemy, Alembic)

Инструменты разработки

  • Git (система контроля версий)

▌ Установка и запуск 🛠️

  1. Клонируйте репозиторий:
git clone https://github.com/DmitryAlexandrov91/fastapi_example.git
  1. Разверните виртуальное окружение и установите зависимости из файла requiremetns.txt (проект разработан на версии Python 3.19)

  2. Создайте файл .env с необходимыми для работы приложения переменными окружения.

  • APP_TITLE=Благотворительный фонд поддержки котиков QRKot
  • DATABASE_URL=sqlite+aiosqlite:///./fastapi.db (вместо fastapi можно выбрать любое название БД)
  • SECRET=секретное слово для генерации ключей авторизации
  • FIRST_SUPERUSER_EMAIL=почта суперюзера
  • FIRST_SUPERUSER_PASSWORD=пароль суперпасуперюзерароль

Для создания отчётов в google таблицах создайте необходимые переменные окружения с учётными данными проекта google cloud

  • TYPE=...
  • PROJECT_ID=...
  • PRIVATE_KEY_ID=...
  • PRIVATE_KEY=ваш приватный ключ(с символами переноса строки \n)
  • CLIENT_EMAIL=...
  • CLIENT_ID=...
  • AUTH_URI=...
  • TOKEN_URI=...
  • AUTH_PROVIDER_X509_CERT_URL=...
  • CLIENT_X509_CERT_URL=...
  • UNIVERSE_DOMAIN=...

И переменную с почтой пользователя, которому будет предоставлен доступ к google таблице

  • EMAIL=...
  1. Для создания чистой базы данных удалите или переместите существующий файл с бд. В корневой директории в папке alembic/versions удалите файлы миграций. Cоздайте файл миграций:
alembic revision --autogenerate -m "ваш комментарий"

Примените миграции:

alembic upgrade head

В корневой директории проекта появится файл с чистой базой данных

  1. Запустите приложение
uvicorn app.main:app

В базе данных автоматически создатся пользователь с правами суперпользователя с данными, переданными в полях FIRST_SUPERUSER_EMAIL и FIRST_SUPERUSER_PASSWORD в файле .env

  1. Проект доступен по адресу http://127.0.0.1:8000

Документация по всем доступным эндпоинтам - http://127.0.0.1:8000/docs


▌ Автор 📝

Александров Дмитрий

GitHub

Telegram

Habr Career

About

Пример API приложения на FastApi с применением аутентификации и авторизации.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published