Skip to content

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,
    middleware: 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,
    middleware: 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