🚀 FastFSX
📁 Роутинг FastAPI на основе структуры файловой системы
Вдохновлён подходом Next.js — вы описываете маршруты через структуру папок и файлы route.py, а fastfsx автоматически подключает их в ваше FastAPI-приложение.
🔧 Установка
С помощью pip:
pip install fastfsx
Или через Poetry:
poetry add fastfsx
⚙️ Использование
from fastapi import FastAPI
from fastfsx import FileRouter
app = FastAPI()
app.include_router(FileRouter("pages").build())
📁 Пример структуры папок
pages/
├── users/
│ ├── [id]/ # динамический маршрут: /users/{id}
│ │ └── route.py
│ └── route.py # маршрут: /users
├── (admin)/ # группирующая папка, игнорируется в маршруте
│ └── dashboard/
│ └── route.py # маршрут: /dashboard
└── route.py # корневой маршрут: /
Каждый файл route.py должен экспортировать FastAPI APIRouter:
# pages/users/route.py
from fastapi import APIRouter
router = APIRouter()
@router.get("/")
async def list_users():
return [{"id": 1, "name": "Alice"}]
✨ Возможности
- 📁 Построение маршрутов на основе структуры папок
- 📌 Поддержка динамических сегментов маршрута (
[id]→{id}) - 🚫 Игнорирование группирующих папок (
(admin)) - 🔀 Глубоко вложенные маршруты
- ✅ Минимум конфигурации, максимум гибкости
📦 Устройство
Функциональность обернута в класс FileRouter, который строит дерево маршрутов и возвращает APIRouter, готовый для подключения к приложению FastAPI.
🛠 В планах
- Поддержка маршрутов
[[...slug]]→{slug:path} - Хуки и расширения
- Поддержка префиксов и middlewares на уровне папок
📄 Лицензия
Проект распространяется под лицензией MIT.
Metadata
Release files for fastfsx 1.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastfsx-1.0.5.tar.gz | 3.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastfsx-1.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.2 kB
Release files / fastfsx-1.0.5.tar.gz
| Download URL | fastfsx-1.0.5.tar.gz |
|---|---|
| Size | 3.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
187d0e16c83263c75efbfb269041684914f1cc618049a92b55ed75a94e9dea4f
|
|
BLAKE2b-256 checksum How to use checksums |
ade2d1025ffc2d4c30d70f4931a12fd2f976c4944657b71b2c19422d4c34c3d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.11.13 Linux/6.11.0-1015-azure
|
Release files / fastfsx-1.0.5-py3-none-any.whl
| Download URL | fastfsx-1.0.5-py3-none-any.whl |
|---|---|
| Size | 5.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f4b731dc8e19486397955d011c750b1bcaeebfd2aaaecbd335864793f96bb1d1
|
|
BLAKE2b-256 checksum How to use checksums |
9efa3470191159a329126587ccbb30ee9fef2aa07d590d65fba85e8defdd4969
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.11.13 Linux/6.11.0-1015-azure
|