Nexios Routing API Reference 🗺️ ​
Core Routing Components ⚙️ ​
Routes
Class ​
python
class Routes(
path: str,
handler: Optional[HandlerType] = None,
methods: Optional[List[str]] = None,
name: Optional[str] = None,
summary: Optional[str] = None,
description: Optional[str] = None,
responses: Optional[Dict[int, Any]] = None,
request_model: Optional[Type[BaseModel]] = None,
middlewares: List[Any] = [],
tags: Optional[List[str]] = None,
security: Optional[List[Dict[str, List[str]]]] = None,
operation_id: Optional[str] = None,
deprecated: bool = False,
parameters: List[Parameter] = [],
exclude_from_schema: bool = False,
**kwargs: Dict[str, Any]
)
WebsocketRoutes
Class ​
python
class WebsocketRoutes(
path: str,
handler: WsHandlerType,
middlewares: List[WsMiddlewareType] = []
)
HTTP Router 🚦 ​
Router
Class ​
python
class Router(
prefix: Optional[str] = None,
routes: Optional[List[Routes]] = None,
tags: Optional[List[str]] = None,
exclude_from_schema: bool = False
)
Key Methods: ​
add_route(route: Routes) -> None
➕add_middleware(middleware: MiddlewareType) -> None
🛡️mount_router(app: Router, path: Optional[str] = None) -> None
đź§©url_for(_name: str, **path_params: Any) -> URLPath
đź”—get_all_routes() -> List[Routes]
📜
HTTP Method Decorators ​
python
@router.get(path: str, ...)
@router.post(path: str, ...)
@router.put(path: str, ...)
@router.patch(path: str, ...)
@router.delete(path: str, ...)
@router.options(path: str, ...)
@router.head(path: str, ...)
@router.route(path: str, methods: List[str], ...)
WebSocket Router 📡 ​
WSRouter
Class ​
python
class WSRouter(
prefix: Optional[str] = None,
middleware: Optional[List[Any]] = [],
routes: Optional[List[WebsocketRoutes]] = []
)
Key Methods: ​
add_ws_route(route: WebsocketRoutes) -> None
➕add_ws_middleware(middleware: ASGIApp) -> None
🛡️mount_router(app: WSRouter, path: Optional[str] = None) -> None
đź§©ws_route(path: str, handler: Optional[WsHandlerType] = None) -> Any
đźŽ
Base Components 🏗️ ​
BaseRouter
(Abstract) ​
python
class BaseRouter(ABC):
def __init__(self, prefix: Optional[str] = None)
RouteBuilder
​
python
class RouteBuilder:
@staticmethod
def create_pattern(path: str) -> RoutePattern
Helper Functions ​
python
async def request_response(func: Callable) -> ASGIApp
def websocket_session(func: Callable) -> ASGIApp
def replace_params(path: str, param_convertors: dict, path_params: dict) -> tuple
def compile_path(path: str) -> tuple
Type Definitions 📝 ​
python
RouteType = Enum('REGEX', 'PATH', 'WILDCARD')
RoutePattern = dataclass(pattern, raw_path, param_names, route_type, convertor)
URLPath = dataclass(path, protocol)
RouteParam = dataclass
Middleware Handling ⛓️ ​
Common Methods: ​
build_middleware_stack(app: ASGIApp) -> ASGIApp
wrap_middleware(mdw: MiddlewareType) -> Middleware
Error Handling ❗ ​
- Raises
NotFoundException
for 404 responses - Raises
ValueError
for duplicate parameters - Automatic 405 Method Not Allowed responses
Path Parameter Handling 🔠​
Supports:
/users/{id}
- Basic string params/files/{path:path}
- Path wildcards/items/{id:int}
- Typed parameters- Complex regex patterns