Skip to main content

Filesystem-based router for FastAPI, inspired by Next.js `pages/`

Project description

🚀 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastfsx-1.0.5.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastfsx-1.0.5-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file fastfsx-1.0.5.tar.gz.

File metadata

  • Download URL: fastfsx-1.0.5.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.13 Linux/6.11.0-1015-azure

File hashes

Hashes for fastfsx-1.0.5.tar.gz
Algorithm Hash digest
SHA256 187d0e16c83263c75efbfb269041684914f1cc618049a92b55ed75a94e9dea4f
MD5 f44a421661fba54145132c4a9fc438f8
BLAKE2b-256 ade2d1025ffc2d4c30d70f4931a12fd2f976c4944657b71b2c19422d4c34c3d9

See more details on using hashes here.

File details

Details for the file fastfsx-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: fastfsx-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.13 Linux/6.11.0-1015-azure

File hashes

Hashes for fastfsx-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f4b731dc8e19486397955d011c750b1bcaeebfd2aaaecbd335864793f96bb1d1
MD5 95d3051b8183ecd26dba7551d98e4257
BLAKE2b-256 9efa3470191159a329126587ccbb30ee9fef2aa07d590d65fba85e8defdd4969

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page