refactor(P6): standardize route variable naming to router
Some checks failed
CI / ruff (push) Successful in 9s
CI / pytest (push) Has been cancelled
CI / validate (push) Has been cancelled
CI / dependency-scanning (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled

All route files (admin.py, store.py) now export `router` instead of
`admin_router`/`store_router`. Consumer code (definition.py, __init__.py)
imports as `router as admin_router` where distinction is needed.
ModuleDefinition fields remain admin_router/store_router.

64 files changed across all modules. Architecture rules, docs, and
migration plan updated. Added noqa:API001 support to validator for
pre-existing raw dict endpoints now visible with standardized router name.
All 1114 tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-27 11:05:34 +01:00
parent 8c0967e215
commit 30c4593e0f
65 changed files with 376 additions and 355 deletions

View File

@@ -819,11 +819,13 @@ Routes define API and page endpoints. They are auto-discovered from module direc
| Type | Location | Discovery | Router Name |
|------|----------|-----------|-------------|
| Admin API | `routes/api/admin.py` | `app/modules/routes.py` | `admin_router` |
| Store API | `routes/api/store.py` | `app/modules/routes.py` | `store_router` |
| Admin API | `routes/api/admin.py` | `app/modules/routes.py` | `router` |
| Store API | `routes/api/store.py` | `app/modules/routes.py` | `router` |
| Storefront API | `routes/api/storefront.py` | `app/modules/routes.py` | `router` |
| Admin Pages | `routes/pages/admin.py` | `app/modules/routes.py` | `admin_router` |
| Store Pages | `routes/pages/store.py` | `app/modules/routes.py` | `store_router` |
| Admin Pages | `routes/pages/admin.py` | `app/modules/routes.py` | `router` |
| Store Pages | `routes/pages/store.py` | `app/modules/routes.py` | `router` |
All route files export `router`. The file location (`admin.py` vs `store.py`) determines the context. Consumer code (definition.py, `__init__.py`) re-exports as `admin_router`/`store_router` where distinction is needed.
**Structure:**
```
@@ -831,13 +833,13 @@ app/modules/{module}/routes/
├── __init__.py
├── api/
│ ├── __init__.py
│ ├── admin.py # Must export admin_router
│ ├── store.py # Must export store_router
│ ├── storefront.py # Must export router (public storefront)
│ ├── admin.py # Must export router
│ ├── store.py # Must export router
│ ├── storefront.py # Must export router
│ └── admin_{feature}.py # Sub-routers aggregated in admin.py
└── pages/
├── __init__.py
└── store.py # Must export store_router
└── store.py # Must export router
```
**Example - Aggregating Sub-Routers:**
@@ -846,7 +848,7 @@ app/modules/{module}/routes/
from fastapi import APIRouter, Depends
from app.api.deps import require_module_access
store_router = APIRouter(
router = APIRouter(
prefix="/billing",
dependencies=[Depends(require_module_access("billing"))],
)
@@ -855,8 +857,8 @@ store_router = APIRouter(
from .store_checkout import store_checkout_router
from .store_usage import store_usage_router
store_router.include_router(store_checkout_router)
store_router.include_router(store_usage_router)
router.include_router(store_checkout_router)
router.include_router(store_usage_router)
```
**Legacy Locations (DEPRECATED - will cause errors):**