- Enhanced route discovery system with ROUTE_CONFIG support for custom
prefix, tags, and priority
- Added get_admin_api_routes() and get_vendor_api_routes() helpers that
return routes sorted by priority
- Added fallback discovery for routes/{frontend}.py when routes/api/
doesn't exist
- Updated CMS module with ROUTE_CONFIG (prefix: /content-pages,
priority: 100) to register last for catch-all routes
- Moved customers routes from routes/ to routes/api/ directory
- Updated orders module to aggregate exception routers into main routers
- Removed manual module router imports from admin and vendor API init
files, replaced with auto-discovery loop
Modules now auto-discovered: billing, inventory, orders, marketplace,
cms, customers, analytics, loyalty, messaging, monitoring, dev-tools
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
26 lines
787 B
Python
26 lines
787 B
Python
# app/modules/customers/routes/api/__init__.py
|
|
"""Customers module API routes."""
|
|
|
|
from app.modules.customers.routes.api.storefront import router as storefront_router
|
|
|
|
# Tag for OpenAPI documentation
|
|
STOREFRONT_TAG = "Customer Account (Storefront)"
|
|
|
|
__all__ = [
|
|
"storefront_router",
|
|
"STOREFRONT_TAG",
|
|
"admin_router",
|
|
"vendor_router",
|
|
]
|
|
|
|
|
|
def __getattr__(name: str):
|
|
"""Lazy import routers to avoid circular dependencies."""
|
|
if name == "admin_router":
|
|
from app.modules.customers.routes.api.admin import admin_router
|
|
return admin_router
|
|
elif name == "vendor_router":
|
|
from app.modules.customers.routes.api.vendor import vendor_router
|
|
return vendor_router
|
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|