Controllers API
The Controllers API provides decorators and utilities for building HTTP endpoints and handling requests.
Controller Decorator
Controller
              Bases: AscModule
__init__
__init__(standalone: bool = True, name: str | None = None, tags: list[str] = [], prefix: str = '', suffix: str = '', guards: Sequence[type[Guard] | type[ParamGuard]] = [], *, imports: Sequence[type[AscModuleRef | ControllerRef]] = [], providers: Sequence[Provider] = [], exports: Sequence[type[T] | str] = []) -> None
HTTP Method Decorators
create_route_decorator
Factory function to create route decorators for different HTTP methods.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| method | Literal["GET", "POST", "PUT", "PATCH", "DELETE"] | The HTTP method for the route. | required | 
Example Usage
from ascender.core import Controller, Get, Post, inject
from ascender.common.fastapi_interop import Body
from .services.user_service import UserService
@Controller(standalone=True)
class UserController:
    """User management endpoints."""
    def __init__(self, user_service: UserService):
        self.user_service = user_service
    @Get("{id}")
    async def get_user(self, id: str):
        """Get a user by ID."""
        return await self.user_service.find_by_id(id)
    @Get("/")
    async def list_users(self, page: int = 1, limit: int = 10):
        """List users with pagination."""
        return await self.user_service.list(page, limit)
    @Post("/")
    async def create_user(self, data: dict = Body(...)):
        """Create a new user."""
        return await self.user_service.create(data)
See Also
- Controllers Guide - Comprehensive guide to using controllers
- Dependency Injection - Using DI in controllers
- Validation - Request/response validation