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.3.tar.gz (3.0 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.3-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fastfsx-1.0.3.tar.gz
  • Upload date:
  • Size: 3.0 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.3.tar.gz
Algorithm Hash digest
SHA256 d3ac55f0236118c6dc5de47cdbdd53630280e9d32a0fbd68a1a054a2667b39cb
MD5 526cda9cbb058c1f063e4d4bc842107a
BLAKE2b-256 84a911c52a37fb2e7ab3afa5f8b3a4fd0e7a76823f826e20ed747a4f0cc00f1d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fastfsx-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 4.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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5ec2f63fdde25a13eaf6758c0af7ca5d7bff9a6e646e0904e6b5cc07b3c1abe4
MD5 a9e6cc7d64dc9697cf1b222d5e8b08c6
BLAKE2b-256 a3397f668ba7dc3798d5a9bb9b7f4f6b0c312a51bc96884ea31aff87bf0f4d8b

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