Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rxyalxrd/cat_charity_fund
API QRKot
https://github.com/rxyalxrd/cat_charity_fund
alembic fastapi pydantic python3 sqlalchemy uvicorn
Last synced: 7 days ago
JSON representation
API QRKot
- Host: GitHub
- URL: https://github.com/rxyalxrd/cat_charity_fund
- Owner: Rxyalxrd
- Created: 2024-07-18T13:49:25.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-08-21T10:17:09.000Z (5 months ago)
- Last Synced: 2024-11-17T03:13:46.868Z (2 months ago)
- Topics: alembic, fastapi, pydantic, python3, sqlalchemy, uvicorn
- Language: Python
- Homepage:
- Size: 84 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API для благотворительного фонда QRKot
----------------------------------------
## ОписаниеДанный сервис создан для поддержки хвостатых. Пользователи могут внести пожертвование,
сопроводив его комментарием или пожеланием. Администраторы сервиса создают проекты в помощь
приютам для животных и другим заинтересованным. Проекты не целевые: распределение средств
происходит автоматически в порядке создания проектов.----------------------------------------
## Используемые технологии- Python 3.11
- FastAPI (веб-фреймворк для создания API)
- SQLAlchemy (библиотека для работы с реляционными СУБД с применением технологии ORM)
- Pydantic (библиотека для валидации и сериализации данных)
- Alembic (инструмент для миграции базы данных)
- Uvicorn (высокопроизводительный ASGI сервер)
----------------------------------------
## Установка1. Клонируйте репозиторий
```bash
git clone https://github.com/Rxyalxrd/cat_charity_fund.git
```2. Создайте и активируйте виртуальное окружение
```bash
python3 -m venv env
```* Если у вас Linux/macOS
```bash
source env/bin/activate
```* Если у вас windows
```bash
source env/scripts/activate
```3. Обновите pip до последней версии
```bash
python3 -m pip install --upgrade pip
```4. Установите зависимости из файла requirements.txt
```bash
pip install -r requirements.txt
```----------------------------------------
## ЗапускВ директории проекта создайте файл .env и заполните его по образцу
.env.exampleПримените миграции
```bash
alembic upgrade head
```Запустите проект
```bash
uvicorn app.main:app --reload
```Для того чтобы открыть документацию проекта, перейдите по ссылке http://127.0.0.1:8000/docs/ после запуска проекта.
----------------------------------------
## API
Данный сервис является API, так что может быть интегрирован в вашу систему.### Формат запроса
Запрос осуществляется посредством протокола HTTP 1.1.### Формат ответа
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8,
содержимое зависит от запроса.### Ресурсы
QRKot имеет три ресурса: Проекты, Пожертвования и Пользователи.
Работа с пользователями осуществляется с помощью стандартного модуля FastAPI Users.Список проектов может быть просмотрен любым пользователем сервиса. Создание, редактирование
и удаление проектов доступно только суперпользователям.Пожертвование может сделать любой пользователь. Также он может посмотреть список
своих пожертвований. Суперпользователь может посмотреть список всех пожертвований.Для регистрации выполните POST запрос на http://127.0.0.1:8000/auth/register:
```bash
curl -X 'POST' \
'http://127.0.0.1:8000/auth/register' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"email": "[email protected]",
"password": "your_password"
}'
```Для аутентификации и получения токена выполните POST запрос на http://127.0.0.1:8000/auth/jwt/login:
```bash
curl -X 'POST' \
'http://127.0.0.1:8000/auth/jwt/login' \
-H 'accept: application/json' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=&username=username&password=password&scope=&client_id=&client_secret='
```Пример ответа в случае успешного выполнения:
```json
{
"access_token": "token",
"token_type": "bearer"
}
```Далее используйте этот токен при остальных запросах к сервису - передавайте его в заголовках запросов.
**Пример**
Для создания нового пожертвования выполните POST запрос на http://127.0.0.1:8000/donation/,
пример которого ниже:
```bash
curl -X 'POST' \
'http://127.0.0.1:8000/donation/' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"comment": "От всей души",
"full_amount": 450
}'
```Пример ответа в случае успешного выполнения
_HTTP 1.1 200 OK_
```json
{
"comment": "От всей души",
"full_amount": 450,
"id": 2,
"create_date": "2023-07-22T03:21:26.369602"
}
```----------------------------------------
## Автор проекта
[Максим Цареградцев](https://github.com/Rxyalxrd)