# noduspanic/fastapi-routechain architecture

> Architecture diagram of the GitHub repository noduspanic/fastapi-routechain, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/noduspanic/fastapi-routechain
- Repository: https://github.com/noduspanic/fastapi-routechain

## Overview

fastapi-routechain is a small FastAPI utility for combining APIRoute subclasses, with MRO-based priority and conflict detection. The main workflow is route-class input → conflict check → combined route class → ChainedAPIRouter. Developers can also call the factory or conflict checker directly. The sampled source supports these connections; it does not show FastAPI’s later request-dispatch behavior.

Main entry points: [`fastapi_routechain/compine/__init__.py`](https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/compine/__init__.py) (Route factory), [`fastapi_routechain/router.py`](https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/router.py) (ChainedAPIRouter), [`fastapi_routechain/compine/utils.py`](https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/compine/utils.py) (Conflict checker), [`fastapi_routechain/exceptions/core.py`](https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/exceptions/core.py) (Conflict warning/errors)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_developer(("Developer"))
node_route_classes["Route classes"]
node_fastapi["FastAPI APIRouter"]
node_chained_router["ChainedAPIRouter<br/>[router.py]"]
node_combine["Route factory<br/>[__init__.py]"]
node_checker["Conflict checker<br/>[utils.py]"]
node_conflict_types["Conflict warning/errors<br/>[core.py]"]
node_combined_class["Combined route class"]

node_developer -->|"configures"| node_chained_router
node_route_classes -->|"supplies"| node_chained_router
node_chained_router -->|"calls"| node_combine
node_combine -->|"checks conflicts"| node_checker
node_checker -->|"returns issues"| node_combine
node_combine -->|"warns or raises"| node_conflict_types
node_combine -->|"creates or returns"| node_combined_class
node_combined_class -->|"sets route class"| node_chained_router
node_chained_router -->|"subclasses"| node_fastapi
node_developer -->|"calls directly"| node_combine
node_developer -->|"checks manually"| node_checker
node_developer -->|"provides"| node_route_classes

click node_chained_router "https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/router.py"
click node_combine "https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/compine/__init__.py"
click node_checker "https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/compine/utils.py"
click node_conflict_types "https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/exceptions/core.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_developer toneIndigo
class node_route_classes,node_fastapi,node_chained_router,node_combine,node_combined_class toneMint
class node_checker,node_conflict_types toneTeal
```

## Components

### Other components

- **Developer**
- **Route classes**
- **FastAPI APIRouter**
- [ChainedAPIRouter](https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/router.py): `fastapi_routechain/router.py`
- [Route factory](https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/compine/__init__.py): `fastapi_routechain/compine/__init__.py`
- [Conflict checker](https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/compine/utils.py): `fastapi_routechain/compine/utils.py`
- [Conflict warning/errors](https://github.com/noduspanic/fastapi-routechain/blob/main/fastapi_routechain/exceptions/core.py): `fastapi_routechain/exceptions/core.py`
- **Combined route class**

## Connections

- Developer → ChainedAPIRouter: configures
- Route classes → ChainedAPIRouter: supplies
- ChainedAPIRouter → Route factory: calls
- Route factory → Conflict checker: checks conflicts
- Conflict checker → Route factory: returns issues
- Route factory → Conflict warning/errors: warns or raises
- Route factory → Combined route class: creates or returns
- Combined route class → ChainedAPIRouter: sets route class
- ChainedAPIRouter → FastAPI APIRouter: subclasses
- Developer → Route factory: calls directly
- Developer → Conflict checker: checks manually
- Developer → Route classes: provides
