spakky-fastapi¶
FastAPI 통합 — 라우트 데코레이터, 자동 엔드포인트 등록
스테레오타입¶
spakky.plugins.fastapi.stereotypes.api_controller
¶
API controller stereotype for FastAPI route grouping.
Provides the @ApiController stereotype for marking classes as FastAPI REST controllers with automatic route registration and prefix configuration.
ApiController(prefix, tags=None, *, name='', scope=Scope.SINGLETON)
dataclass
¶
Bases: Controller
Stereotype for FastAPI REST API controllers.
Marks a class as an API controller with automatic route registration. Methods decorated with @get, @post, etc. will be registered as FastAPI endpoints with the specified prefix.
Attributes:
| Name | Type | Description |
|---|---|---|
prefix |
str
|
URL prefix for all routes in this controller. |
tags |
list[str | Enum] | None
|
OpenAPI tags for grouping endpoints in documentation. |
options: show_root_heading: false
라우트¶
spakky.plugins.fastapi.routes.route
¶
Base route decorator and configuration for FastAPI endpoints.
Provides the core @route decorator and Route annotation class that can be used to mark controller methods as API endpoints with full FastAPI configuration.
HTTPMethod
¶
Route(path, response_model=None, status_code=None, tags=None, dependencies=None, summary=None, description=None, response_description='Successful Response', responses=None, deprecated=None, methods=None, operation_id=None, response_model_include=None, response_model_exclude=None, response_model_by_alias=True, response_model_exclude_unset=False, response_model_exclude_defaults=False, response_model_exclude_none=False, include_in_schema=True, response_class=JSONResponse, name=None, route_class_override=None, callbacks=None, openapi_extra=None)
dataclass
¶
Bases: FunctionAnnotation
Function annotation for marking methods as API routes.
Stores all FastAPI route configuration including path, HTTP methods, response models, and OpenAPI documentation settings.
Attributes:
| Name | Type | Description |
|---|---|---|
path |
str
|
The URL path for this route. |
response_model |
type[Any] | None
|
Pydantic model for response serialization. |
status_code |
int | None
|
HTTP status code for successful responses. |
tags |
list[str] | None
|
OpenAPI tags for grouping endpoints. |
dependencies |
Sequence[Depends] | None
|
FastAPI dependencies to inject. |
summary |
str | None
|
Short summary for OpenAPI documentation. |
description |
str | None
|
Detailed description for OpenAPI documentation. |
response_description |
str
|
Description of successful response. |
responses |
dict[int | str, dict[str, Any]] | None
|
Additional response schemas for OpenAPI. |
deprecated |
bool | None
|
Whether this endpoint is deprecated. |
methods |
set[HTTPMethod] | list[HTTPMethod] | None
|
HTTP methods this route handles. |
operation_id |
str | None
|
Custom OpenAPI operation ID. |
response_model_include |
SetIntStr | DictIntStrAny | None
|
Fields to include in response model. |
response_model_exclude |
SetIntStr | DictIntStrAny | None
|
Fields to exclude from response model. |
response_model_by_alias |
bool
|
Use field aliases in response. |
response_model_exclude_unset |
bool
|
Exclude unset fields from response. |
response_model_exclude_defaults |
bool
|
Exclude fields with default values. |
response_model_exclude_none |
bool
|
Exclude None values from response. |
include_in_schema |
bool
|
Include in OpenAPI schema. |
response_class |
type[Response]
|
FastAPI response class to use. |
name |
str | None
|
Display name for the route. |
route_class_override |
type[APIRoute] | None
|
Custom APIRoute class. |
callbacks |
list[Route] | None
|
OpenAPI callbacks configuration. |
openapi_extra |
dict[str, Any] | None
|
Additional OpenAPI schema data. |
route(path, response_model=None, status_code=None, tags=None, dependencies=None, summary=None, description=None, response_description='Successful Response', responses=None, deprecated=None, methods=None, operation_id=None, response_model_include=None, response_model_exclude=None, response_model_by_alias=True, response_model_exclude_unset=False, response_model_exclude_defaults=False, response_model_exclude_none=False, include_in_schema=True, response_class=JSONResponse, name=None, route_class_override=None, callbacks=None, openapi_extra=None)
¶
Decorator to mark a controller method as an API route.
Attaches route configuration to the method which will be registered by the RegisterRoutesPostProcessor during container initialization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
The URL path for this route. |
required |
response_model
|
type[Any] | None
|
Pydantic model for response serialization. |
None
|
status_code
|
int | None
|
HTTP status code for successful responses. |
None
|
tags
|
list[str] | None
|
OpenAPI tags for grouping endpoints. |
None
|
dependencies
|
Sequence[Depends] | None
|
FastAPI dependencies to inject. |
None
|
summary
|
str | None
|
Short summary for OpenAPI documentation. |
None
|
description
|
str | None
|
Detailed description for OpenAPI documentation. |
None
|
response_description
|
str
|
Description of successful response. |
'Successful Response'
|
responses
|
dict[int | str, dict[str, Any]] | None
|
Additional response schemas for OpenAPI. |
None
|
deprecated
|
bool | None
|
Whether this endpoint is deprecated. |
None
|
methods
|
set[HTTPMethod] | list[HTTPMethod] | None
|
HTTP methods this route handles. |
None
|
operation_id
|
str | None
|
Custom OpenAPI operation ID. |
None
|
response_model_include
|
SetIntStr | DictIntStrAny | None
|
Fields to include in response model. |
None
|
response_model_exclude
|
SetIntStr | DictIntStrAny | None
|
Fields to exclude from response model. |
None
|
response_model_by_alias
|
bool
|
Use field aliases in response. |
True
|
response_model_exclude_unset
|
bool
|
Exclude unset fields from response. |
False
|
response_model_exclude_defaults
|
bool
|
Exclude fields with default values. |
False
|
response_model_exclude_none
|
bool
|
Exclude None values from response. |
False
|
include_in_schema
|
bool
|
Include in OpenAPI schema. |
True
|
response_class
|
type[Response]
|
FastAPI response class to use. |
JSONResponse
|
name
|
str | None
|
Display name for the route. |
None
|
route_class_override
|
type[APIRoute] | None
|
Custom APIRoute class. |
None
|
callbacks
|
list[Route] | None
|
OpenAPI callbacks configuration. |
None
|
openapi_extra
|
dict[str, Any] | None
|
Additional OpenAPI schema data. |
None
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[..., AnyT]], Callable[..., AnyT]]
|
A decorator function that attaches the route configuration. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/routes/route.py
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | |
options: show_root_heading: false
spakky.plugins.fastapi.routes.get
¶
GET route decorator for FastAPI controllers.
Provides a convenience decorator for marking controller methods as HTTP GET endpoints with full FastAPI configuration support.
get(path, response_model=None, status_code=None, tags=None, dependencies=None, summary=None, description=None, response_description='Successful Response', responses=None, deprecated=None, operation_id=None, response_model_include=None, response_model_exclude=None, response_model_by_alias=True, response_model_exclude_unset=False, response_model_exclude_defaults=False, response_model_exclude_none=False, include_in_schema=True, response_class=JSONResponse, name=None, route_class_override=None, callbacks=None, openapi_extra=None)
¶
Decorator to mark a controller method as an HTTP GET endpoint.
Convenience wrapper around @route that automatically sets the HTTP method to GET. Supports all FastAPI route configuration options.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
The URL path for this route. |
required |
response_model
|
type[Any] | None
|
Pydantic model for response serialization. |
None
|
status_code
|
int | None
|
HTTP status code for successful responses. |
None
|
tags
|
list[str] | None
|
OpenAPI tags for grouping endpoints. |
None
|
dependencies
|
Sequence[Depends] | None
|
FastAPI dependencies to inject. |
None
|
summary
|
str | None
|
Short summary for OpenAPI documentation. |
None
|
description
|
str | None
|
Detailed description for OpenAPI documentation. |
None
|
response_description
|
str
|
Description of successful response. |
'Successful Response'
|
responses
|
dict[int | str, dict[str, Any]] | None
|
Additional response schemas for OpenAPI. |
None
|
deprecated
|
bool | None
|
Whether this endpoint is deprecated. |
None
|
operation_id
|
str | None
|
Custom OpenAPI operation ID. |
None
|
response_model_include
|
SetIntStr | DictIntStrAny | None
|
Fields to include in response model. |
None
|
response_model_exclude
|
SetIntStr | DictIntStrAny | None
|
Fields to exclude from response model. |
None
|
response_model_by_alias
|
bool
|
Use field aliases in response. |
True
|
response_model_exclude_unset
|
bool
|
Exclude unset fields from response. |
False
|
response_model_exclude_defaults
|
bool
|
Exclude fields with default values. |
False
|
response_model_exclude_none
|
bool
|
Exclude None values from response. |
False
|
include_in_schema
|
bool
|
Include in OpenAPI schema. |
True
|
response_class
|
type[Response]
|
FastAPI response class to use. |
JSONResponse
|
name
|
str | None
|
Display name for the route. |
None
|
route_class_override
|
type[APIRoute] | None
|
Custom APIRoute class. |
None
|
callbacks
|
list[Route] | None
|
OpenAPI callbacks configuration. |
None
|
openapi_extra
|
dict[str, Any] | None
|
Additional OpenAPI schema data. |
None
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[..., AnyT]], Callable[..., AnyT]]
|
A decorator function that marks the method as a GET endpoint. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/routes/get.py
options: show_root_heading: false
spakky.plugins.fastapi.routes.post
¶
POST route decorator for FastAPI controllers.
Provides a convenience decorator for marking controller methods as HTTP POST endpoints with full FastAPI configuration support.
post(path, response_model=None, status_code=None, tags=None, dependencies=None, summary=None, description=None, response_description='Successful Response', responses=None, deprecated=None, operation_id=None, response_model_include=None, response_model_exclude=None, response_model_by_alias=True, response_model_exclude_unset=False, response_model_exclude_defaults=False, response_model_exclude_none=False, include_in_schema=True, response_class=JSONResponse, name=None, route_class_override=None, callbacks=None, openapi_extra=None)
¶
Decorator to mark a controller method as an HTTP POST endpoint.
Convenience wrapper around @route that automatically sets the HTTP method to POST. Supports all FastAPI route configuration options.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
The URL path for this route. |
required |
response_model
|
type[Any] | None
|
Pydantic model for response serialization. |
None
|
status_code
|
int | None
|
HTTP status code for successful responses. |
None
|
tags
|
list[str] | None
|
OpenAPI tags for grouping endpoints. |
None
|
dependencies
|
Sequence[Depends] | None
|
FastAPI dependencies to inject. |
None
|
summary
|
str | None
|
Short summary for OpenAPI documentation. |
None
|
description
|
str | None
|
Detailed description for OpenAPI documentation. |
None
|
response_description
|
str
|
Description of successful response. |
'Successful Response'
|
responses
|
dict[int | str, dict[str, Any]] | None
|
Additional response schemas for OpenAPI. |
None
|
deprecated
|
bool | None
|
Whether this endpoint is deprecated. |
None
|
operation_id
|
str | None
|
Custom OpenAPI operation ID. |
None
|
response_model_include
|
SetIntStr | DictIntStrAny | None
|
Fields to include in response model. |
None
|
response_model_exclude
|
SetIntStr | DictIntStrAny | None
|
Fields to exclude from response model. |
None
|
response_model_by_alias
|
bool
|
Use field aliases in response. |
True
|
response_model_exclude_unset
|
bool
|
Exclude unset fields from response. |
False
|
response_model_exclude_defaults
|
bool
|
Exclude fields with default values. |
False
|
response_model_exclude_none
|
bool
|
Exclude None values from response. |
False
|
include_in_schema
|
bool
|
Include in OpenAPI schema. |
True
|
response_class
|
type[Response]
|
FastAPI response class to use. |
JSONResponse
|
name
|
str | None
|
Display name for the route. |
None
|
route_class_override
|
type[APIRoute] | None
|
Custom APIRoute class. |
None
|
callbacks
|
list[Route] | None
|
OpenAPI callbacks configuration. |
None
|
openapi_extra
|
dict[str, Any] | None
|
Additional OpenAPI schema data. |
None
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[..., AnyT]], Callable[..., AnyT]]
|
A decorator function that marks the method as a POST endpoint. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/routes/post.py
options: show_root_heading: false
spakky.plugins.fastapi.routes.put
¶
PUT route decorator for FastAPI controllers.
Provides a convenience decorator for marking controller methods as HTTP PUT endpoints with full FastAPI configuration support.
put(path, response_model=None, status_code=None, tags=None, dependencies=None, summary=None, description=None, response_description='Successful Response', responses=None, deprecated=None, operation_id=None, response_model_include=None, response_model_exclude=None, response_model_by_alias=True, response_model_exclude_unset=False, response_model_exclude_defaults=False, response_model_exclude_none=False, include_in_schema=True, response_class=JSONResponse, name=None, route_class_override=None, callbacks=None, openapi_extra=None)
¶
Decorator to mark a controller method as an HTTP PUT endpoint.
Convenience wrapper around @route that automatically sets the HTTP method to PUT. Supports all FastAPI route configuration options.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
The URL path for this route. |
required |
response_model
|
type[Any] | None
|
Pydantic model for response serialization. |
None
|
status_code
|
int | None
|
HTTP status code for successful responses. |
None
|
tags
|
list[str] | None
|
OpenAPI tags for grouping endpoints. |
None
|
dependencies
|
Sequence[Depends] | None
|
FastAPI dependencies to inject. |
None
|
summary
|
str | None
|
Short summary for OpenAPI documentation. |
None
|
description
|
str | None
|
Detailed description for OpenAPI documentation. |
None
|
response_description
|
str
|
Description of successful response. |
'Successful Response'
|
responses
|
dict[int | str, dict[str, Any]] | None
|
Additional response schemas for OpenAPI. |
None
|
deprecated
|
bool | None
|
Whether this endpoint is deprecated. |
None
|
operation_id
|
str | None
|
Custom OpenAPI operation ID. |
None
|
response_model_include
|
SetIntStr | DictIntStrAny | None
|
Fields to include in response model. |
None
|
response_model_exclude
|
SetIntStr | DictIntStrAny | None
|
Fields to exclude from response model. |
None
|
response_model_by_alias
|
bool
|
Use field aliases in response. |
True
|
response_model_exclude_unset
|
bool
|
Exclude unset fields from response. |
False
|
response_model_exclude_defaults
|
bool
|
Exclude fields with default values. |
False
|
response_model_exclude_none
|
bool
|
Exclude None values from response. |
False
|
include_in_schema
|
bool
|
Include in OpenAPI schema. |
True
|
response_class
|
type[Response]
|
FastAPI response class to use. |
JSONResponse
|
name
|
str | None
|
Display name for the route. |
None
|
route_class_override
|
type[APIRoute] | None
|
Custom APIRoute class. |
None
|
callbacks
|
list[Route] | None
|
OpenAPI callbacks configuration. |
None
|
openapi_extra
|
dict[str, Any] | None
|
Additional OpenAPI schema data. |
None
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[..., AnyT]], Callable[..., AnyT]]
|
A decorator function that marks the method as a PUT endpoint. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/routes/put.py
options: show_root_heading: false
spakky.plugins.fastapi.routes.patch
¶
PATCH route decorator for FastAPI controllers.
Provides a convenience decorator for marking controller methods as HTTP PATCH endpoints with full FastAPI configuration support.
patch(path, response_model=None, status_code=None, tags=None, dependencies=None, summary=None, description=None, response_description='Successful Response', responses=None, deprecated=None, operation_id=None, response_model_include=None, response_model_exclude=None, response_model_by_alias=True, response_model_exclude_unset=False, response_model_exclude_defaults=False, response_model_exclude_none=False, include_in_schema=True, response_class=JSONResponse, name=None, route_class_override=None, callbacks=None, openapi_extra=None)
¶
Decorator to mark a controller method as an HTTP PATCH endpoint.
Convenience wrapper around @route that automatically sets the HTTP method to PATCH. Supports all FastAPI route configuration options.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
The URL path for this route. |
required |
response_model
|
type[Any] | None
|
Pydantic model for response serialization. |
None
|
status_code
|
int | None
|
HTTP status code for successful responses. |
None
|
tags
|
list[str] | None
|
OpenAPI tags for grouping endpoints. |
None
|
dependencies
|
Sequence[Depends] | None
|
FastAPI dependencies to inject. |
None
|
summary
|
str | None
|
Short summary for OpenAPI documentation. |
None
|
description
|
str | None
|
Detailed description for OpenAPI documentation. |
None
|
response_description
|
str
|
Description of successful response. |
'Successful Response'
|
responses
|
dict[int | str, dict[str, Any]] | None
|
Additional response schemas for OpenAPI. |
None
|
deprecated
|
bool | None
|
Whether this endpoint is deprecated. |
None
|
operation_id
|
str | None
|
Custom OpenAPI operation ID. |
None
|
response_model_include
|
SetIntStr | DictIntStrAny | None
|
Fields to include in response model. |
None
|
response_model_exclude
|
SetIntStr | DictIntStrAny | None
|
Fields to exclude from response model. |
None
|
response_model_by_alias
|
bool
|
Use field aliases in response. |
True
|
response_model_exclude_unset
|
bool
|
Exclude unset fields from response. |
False
|
response_model_exclude_defaults
|
bool
|
Exclude fields with default values. |
False
|
response_model_exclude_none
|
bool
|
Exclude None values from response. |
False
|
include_in_schema
|
bool
|
Include in OpenAPI schema. |
True
|
response_class
|
type[Response]
|
FastAPI response class to use. |
JSONResponse
|
name
|
str | None
|
Display name for the route. |
None
|
route_class_override
|
type[APIRoute] | None
|
Custom APIRoute class. |
None
|
callbacks
|
list[Route] | None
|
OpenAPI callbacks configuration. |
None
|
openapi_extra
|
dict[str, Any] | None
|
Additional OpenAPI schema data. |
None
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[..., AnyT]], Callable[..., AnyT]]
|
A decorator function that marks the method as a PATCH endpoint. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/routes/patch.py
options: show_root_heading: false
spakky.plugins.fastapi.routes.delete
¶
DELETE route decorator for FastAPI controllers.
Provides a convenience decorator for marking controller methods as HTTP DELETE endpoints with full FastAPI configuration support.
delete(path, response_model=None, status_code=None, tags=None, dependencies=None, summary=None, description=None, response_description='Successful Response', responses=None, deprecated=None, operation_id=None, response_model_include=None, response_model_exclude=None, response_model_by_alias=True, response_model_exclude_unset=False, response_model_exclude_defaults=False, response_model_exclude_none=False, include_in_schema=True, response_class=JSONResponse, name=None, route_class_override=None, callbacks=None, openapi_extra=None)
¶
Decorator to mark a controller method as an HTTP DELETE endpoint.
Convenience wrapper around @route that automatically sets the HTTP method to DELETE. Supports all FastAPI route configuration options.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
The URL path for this route. |
required |
response_model
|
type[Any] | None
|
Pydantic model for response serialization. |
None
|
status_code
|
int | None
|
HTTP status code for successful responses. |
None
|
tags
|
list[str] | None
|
OpenAPI tags for grouping endpoints. |
None
|
dependencies
|
Sequence[Depends] | None
|
FastAPI dependencies to inject. |
None
|
summary
|
str | None
|
Short summary for OpenAPI documentation. |
None
|
description
|
str | None
|
Detailed description for OpenAPI documentation. |
None
|
response_description
|
str
|
Description of successful response. |
'Successful Response'
|
responses
|
dict[int | str, dict[str, Any]] | None
|
Additional response schemas for OpenAPI. |
None
|
deprecated
|
bool | None
|
Whether this endpoint is deprecated. |
None
|
operation_id
|
str | None
|
Custom OpenAPI operation ID. |
None
|
response_model_include
|
SetIntStr | DictIntStrAny | None
|
Fields to include in response model. |
None
|
response_model_exclude
|
SetIntStr | DictIntStrAny | None
|
Fields to exclude from response model. |
None
|
response_model_by_alias
|
bool
|
Use field aliases in response. |
True
|
response_model_exclude_unset
|
bool
|
Exclude unset fields from response. |
False
|
response_model_exclude_defaults
|
bool
|
Exclude fields with default values. |
False
|
response_model_exclude_none
|
bool
|
Exclude None values from response. |
False
|
include_in_schema
|
bool
|
Include in OpenAPI schema. |
True
|
response_class
|
type[Response]
|
FastAPI response class to use. |
JSONResponse
|
name
|
str | None
|
Display name for the route. |
None
|
route_class_override
|
type[APIRoute] | None
|
Custom APIRoute class. |
None
|
callbacks
|
list[Route] | None
|
OpenAPI callbacks configuration. |
None
|
openapi_extra
|
dict[str, Any] | None
|
Additional OpenAPI schema data. |
None
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[..., AnyT]], Callable[..., AnyT]]
|
A decorator function that marks the method as a DELETE endpoint. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/routes/delete.py
options: show_root_heading: false
spakky.plugins.fastapi.routes.head
¶
HEAD route decorator for FastAPI controllers.
Provides a convenience decorator for marking controller methods as HTTP HEAD endpoints with full FastAPI configuration support.
head(path, response_model=None, status_code=None, tags=None, dependencies=None, summary=None, description=None, response_description='Successful Response', responses=None, deprecated=None, operation_id=None, response_model_include=None, response_model_exclude=None, response_model_by_alias=True, response_model_exclude_unset=False, response_model_exclude_defaults=False, response_model_exclude_none=False, include_in_schema=True, response_class=JSONResponse, name=None, route_class_override=None, callbacks=None, openapi_extra=None)
¶
Decorator to mark a controller method as an HTTP HEAD endpoint.
Convenience wrapper around @route that automatically sets the HTTP method to HEAD. Supports all FastAPI route configuration options.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
The URL path for this route. |
required |
response_model
|
type[Any] | None
|
Pydantic model for response serialization. |
None
|
status_code
|
int | None
|
HTTP status code for successful responses. |
None
|
tags
|
list[str] | None
|
OpenAPI tags for grouping endpoints. |
None
|
dependencies
|
Sequence[Depends] | None
|
FastAPI dependencies to inject. |
None
|
summary
|
str | None
|
Short summary for OpenAPI documentation. |
None
|
description
|
str | None
|
Detailed description for OpenAPI documentation. |
None
|
response_description
|
str
|
Description of successful response. |
'Successful Response'
|
responses
|
dict[int | str, dict[str, Any]] | None
|
Additional response schemas for OpenAPI. |
None
|
deprecated
|
bool | None
|
Whether this endpoint is deprecated. |
None
|
operation_id
|
str | None
|
Custom OpenAPI operation ID. |
None
|
response_model_include
|
SetIntStr | DictIntStrAny | None
|
Fields to include in response model. |
None
|
response_model_exclude
|
SetIntStr | DictIntStrAny | None
|
Fields to exclude from response model. |
None
|
response_model_by_alias
|
bool
|
Use field aliases in response. |
True
|
response_model_exclude_unset
|
bool
|
Exclude unset fields from response. |
False
|
response_model_exclude_defaults
|
bool
|
Exclude fields with default values. |
False
|
response_model_exclude_none
|
bool
|
Exclude None values from response. |
False
|
include_in_schema
|
bool
|
Include in OpenAPI schema. |
True
|
response_class
|
type[Response]
|
FastAPI response class to use. |
JSONResponse
|
name
|
str | None
|
Display name for the route. |
None
|
route_class_override
|
type[APIRoute] | None
|
Custom APIRoute class. |
None
|
callbacks
|
list[Route] | None
|
OpenAPI callbacks configuration. |
None
|
openapi_extra
|
dict[str, Any] | None
|
Additional OpenAPI schema data. |
None
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[..., AnyT]], Callable[..., AnyT]]
|
A decorator function that marks the method as a HEAD endpoint. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/routes/head.py
options: show_root_heading: false
spakky.plugins.fastapi.routes.options
¶
OPTIONS route decorator for FastAPI controllers.
Provides a convenience decorator for marking controller methods as HTTP OPTIONS endpoints with full FastAPI configuration support.
options(path, response_model=None, status_code=None, tags=None, dependencies=None, summary=None, description=None, response_description='Successful Response', responses=None, deprecated=None, operation_id=None, response_model_include=None, response_model_exclude=None, response_model_by_alias=True, response_model_exclude_unset=False, response_model_exclude_defaults=False, response_model_exclude_none=False, include_in_schema=True, response_class=JSONResponse, name=None, route_class_override=None, callbacks=None, openapi_extra=None)
¶
Decorator to mark a controller method as an HTTP OPTIONS endpoint.
Convenience wrapper around @route that automatically sets the HTTP method to OPTIONS. Supports all FastAPI route configuration options.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
The URL path for this route. |
required |
response_model
|
type[Any] | None
|
Pydantic model for response serialization. |
None
|
status_code
|
int | None
|
HTTP status code for successful responses. |
None
|
tags
|
list[str] | None
|
OpenAPI tags for grouping endpoints. |
None
|
dependencies
|
Sequence[Depends] | None
|
FastAPI dependencies to inject. |
None
|
summary
|
str | None
|
Short summary for OpenAPI documentation. |
None
|
description
|
str | None
|
Detailed description for OpenAPI documentation. |
None
|
response_description
|
str
|
Description of successful response. |
'Successful Response'
|
responses
|
dict[int | str, dict[str, Any]] | None
|
Additional response schemas for OpenAPI. |
None
|
deprecated
|
bool | None
|
Whether this endpoint is deprecated. |
None
|
operation_id
|
str | None
|
Custom OpenAPI operation ID. |
None
|
response_model_include
|
SetIntStr | DictIntStrAny | None
|
Fields to include in response model. |
None
|
response_model_exclude
|
SetIntStr | DictIntStrAny | None
|
Fields to exclude from response model. |
None
|
response_model_by_alias
|
bool
|
Use field aliases in response. |
True
|
response_model_exclude_unset
|
bool
|
Exclude unset fields from response. |
False
|
response_model_exclude_defaults
|
bool
|
Exclude fields with default values. |
False
|
response_model_exclude_none
|
bool
|
Exclude None values from response. |
False
|
include_in_schema
|
bool
|
Include in OpenAPI schema. |
True
|
response_class
|
type[Response]
|
FastAPI response class to use. |
JSONResponse
|
name
|
str | None
|
Display name for the route. |
None
|
route_class_override
|
type[APIRoute] | None
|
Custom APIRoute class. |
None
|
callbacks
|
list[Route] | None
|
OpenAPI callbacks configuration. |
None
|
openapi_extra
|
dict[str, Any] | None
|
Additional OpenAPI schema data. |
None
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[..., AnyT]], Callable[..., AnyT]]
|
A decorator function that marks the method as an OPTIONS endpoint. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/routes/options.py
options: show_root_heading: false
spakky.plugins.fastapi.routes.websocket
¶
WebSocket route decorator for FastAPI controllers.
Provides a decorator for marking controller methods as WebSocket endpoints with support for FastAPI WebSocket configuration.
WebSocketRoute(path, name=None, dependencies=None)
dataclass
¶
Bases: FunctionAnnotation
Function annotation for marking methods as WebSocket endpoints.
Stores WebSocket route configuration including path and dependencies.
Attributes:
| Name | Type | Description |
|---|---|---|
path |
str
|
The URL path for this WebSocket endpoint. |
name |
str | None
|
Display name for the WebSocket route. |
dependencies |
Sequence[Depends] | None
|
FastAPI dependencies to inject. |
websocket(path, name=None, dependencies=None)
¶
Decorator to mark a controller method as a WebSocket endpoint.
Attaches WebSocket route configuration to the method which will be registered by the RegisterRoutesPostProcessor during container initialization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
The URL path for this WebSocket endpoint. |
required |
name
|
str | None
|
Display name for the WebSocket route. |
None
|
dependencies
|
Sequence[Depends] | None
|
FastAPI dependencies to inject. |
None
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[..., AnyT]], Callable[..., AnyT]]
|
A decorator function that attaches the WebSocket route configuration. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/routes/websocket.py
options: show_root_heading: false
미들웨어¶
spakky.plugins.fastapi.middlewares.error_handling
¶
Error handling middleware for FastAPI applications.
Provides global exception handling that converts Spakky FastAPI errors to appropriate JSON responses and handles unexpected exceptions gracefully.
ErrorHandlingMiddleware(app, dispatch=None, debug=False)
¶
Bases: BaseHTTPMiddleware
Middleware that catches and converts exceptions to JSON responses.
Handles both Spakky FastAPI errors and unexpected exceptions, converting them to appropriate JSON responses with correct HTTP status codes.
Initialize the error handling middleware.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
app
|
ASGIApp
|
The ASGI application. |
required |
dispatch
|
DispatchFunction | None
|
Optional custom dispatch function. |
None
|
debug
|
bool
|
Whether to include tracebacks in error responses. |
False
|
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/middlewares/error_handling.py
dispatch(request, call_next)
async
¶
Process the request with error handling.
Catches exceptions during request processing and converts them to appropriate JSON responses. Spakky FastAPI errors are converted using their to_response() method, while unexpected exceptions return 500.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
Request
|
The incoming HTTP request. |
required |
call_next
|
Next
|
Function to call the next middleware or route handler. |
required |
Returns:
| Type | Description |
|---|---|
Response
|
The HTTP response, either from successful processing or error handling. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/middlewares/error_handling.py
options: show_root_heading: false
spakky.plugins.fastapi.middlewares.tracing
¶
Tracing middleware for W3C Trace Context propagation.
Extracts trace context from incoming HTTP request headers, activates a child span for the request lifetime, and injects trace context into response headers.
TracingMiddleware(app, dispatch=None, *, propagator)
¶
Bases: BaseHTTPMiddleware
Middleware that propagates W3C Trace Context across HTTP boundaries.
Extracts traceparent from request headers, activates a child span
for the request lifetime, and injects traceparent into response
headers. When no incoming trace context is present, a new root trace
is started.
Initialize the tracing middleware.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
app
|
ASGIApp
|
The ASGI application. |
required |
dispatch
|
DispatchFunction | None
|
Optional custom dispatch function. |
None
|
propagator
|
ITracePropagator
|
Trace context propagator for extract/inject. |
required |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/middlewares/tracing.py
dispatch(request, call_next)
async
¶
Extract trace context, process request, and inject into response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
Request
|
The incoming HTTP request. |
required |
call_next
|
Next
|
Function to call the next middleware or route handler. |
required |
Returns:
| Type | Description |
|---|---|
Response
|
The HTTP response with trace context headers injected. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/middlewares/tracing.py
options: show_root_heading: false
후처리기s¶
spakky.plugins.fastapi.post_processors.bind_lifespan
¶
Post-processor for binding FastAPI lifespan to ApplicationContext lifecycle.
Automatically wraps FastAPI lifespan to ensure ApplicationContext.stop() is called when FastAPI shuts down, enabling graceful shutdown of background services like RabbitMQ consumers.
BindLifespanPostProcessor
¶
Bases: IPostProcessor, IApplicationContextAware
Post-processor that binds FastAPI lifespan to ApplicationContext lifecycle.
Wraps the FastAPI lifespan handler to ensure ApplicationContext.stop() is called when FastAPI shuts down. This enables graceful shutdown of all background services registered with the application context.
User-defined lifespan handlers are preserved and executed normally.
set_application_context(application_context)
¶
Set the application context for lifecycle binding.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
application_context
|
IApplicationContext
|
The application context to stop on shutdown. |
required |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/post_processors/bind_lifespan.py
post_process(pod)
¶
Wrap FastAPI lifespan to bind ApplicationContext lifecycle.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pod
|
object
|
The Pod to process. |
required |
Returns:
| Type | Description |
|---|---|
object
|
The Pod with lifespan wrapped if it's a FastAPI instance. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/post_processors/bind_lifespan.py
options: show_root_heading: false
spakky.plugins.fastapi.post_processors.add_builtin_middlewares
¶
Post-processor for adding built-in middleware to FastAPI applications.
Automatically injects error handling and context management middleware into FastAPI instances registered in the container. When the tracing plugin is loaded, tracing middleware is also added.
AddBuiltInMiddlewaresPostProcessor
¶
Bases: IPostProcessor, IApplicationContextAware
Post-processor that adds built-in middleware to FastAPI instances.
Injects error handling and tracing middleware into any FastAPI instance created as a Pod. Tracing middleware is only added when the tracing plugin is loaded. Runs early in the post-processor chain (Order 0).
set_application_context(application_context)
¶
Set the application context for middleware injection.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
application_context
|
IApplicationContext
|
The application context to use for middleware. |
required |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/post_processors/add_builtin_middlewares.py
post_process(pod)
¶
Add built-in middleware to FastAPI instances.
If the Pod is a FastAPI instance, adds error handling middleware and optionally tracing middleware. Non-FastAPI Pods are returned unchanged.
Middleware execution order (outermost first):
1. TracingMiddleware — extract/inject W3C Trace Context
2. ErrorHandlingMiddleware — catch exceptions → JSON responses
add_middleware prepends, so the last added middleware executes first.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pod
|
object
|
The Pod to process. |
required |
Returns:
| Type | Description |
|---|---|
object
|
The Pod, potentially with middleware added if it's a FastAPI instance. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/post_processors/add_builtin_middlewares.py
options: show_root_heading: false
spakky.plugins.fastapi.post_processors.register_routes
¶
Post-processor for registering API controller routes.
Automatically discovers and registers routes from @ApiController decorated classes, creating FastAPI endpoints with proper dependency injection.
RegisterRoutesPostProcessor
¶
Bases: IPostProcessor, IContainerAware, IApplicationContextAware
Post-processor that registers routes from API controllers.
Scans @ApiController decorated classes for @route decorated methods and automatically registers them as FastAPI endpoints with proper dependency injection and response model inference.
set_container(container)
¶
Set the container for dependency injection.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
container
|
IContainer
|
The IoC container. |
required |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/post_processors/register_routes.py
set_application_context(application_context)
¶
Set the application context.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
application_context
|
IApplicationContext
|
The application context. |
required |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/post_processors/register_routes.py
post_process(pod)
¶
Register routes from API controllers.
Scans the controller for methods decorated with @route or @websocket and registers them as FastAPI endpoints. Automatically infers response models from return type annotations and sets up dependency injection.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pod
|
object
|
The Pod to process, potentially an API controller. |
required |
Returns:
| Type | Description |
|---|---|
object
|
The Pod, with routes registered if it's an API controller. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/post_processors/register_routes.py
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | |
options: show_root_heading: false
spakky.plugins.fastapi.post_processors.register_actuator
¶
Post-processor for registering actuator HTTP endpoints.
RegisterActuatorPostProcessor
¶
Bases: IPostProcessor, IContainerAware
Register actuator endpoints when the actuator service is available.
set_container(container)
¶
Set the container used to resolve actuator dependencies.
post_process(pod)
¶
Register actuator routes on FastAPI instances.
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/post_processors/register_actuator.py
options: show_root_heading: false
Actuator¶
spakky.plugins.fastapi.actuator
¶
FastAPI configuration for actuator HTTP endpoints.
FastAPIActuatorConfig(*, enabled=True, base_path='/actuator', health_enabled=True, readiness_enabled=True, liveness_enabled=True, info_enabled=True)
¶
Configuration for FastAPI actuator endpoint exposure.
Initialize actuator endpoint exposure configuration.
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/actuator.py
options: show_root_heading: false
에러¶
spakky.plugins.fastapi.error
¶
HTTP error classes for FastAPI integration.
Provides base error classes and common HTTP error responses that integrate with FastAPI's error handling system. All errors can be converted to JSON responses with appropriate HTTP status codes.
AbstractSpakkyFastAPIError
¶
Bases: AbstractSpakkyFrameworkError, ABC
Base error class for FastAPI-related exceptions.
Provides automatic conversion to FastAPI JSON responses with appropriate HTTP status codes. Subclasses should define a status_code class variable.
Attributes:
| Name | Type | Description |
|---|---|---|
status_code |
int
|
HTTP status code for this error type. |
message |
str
|
Human-readable error message. |
status_code
class-attribute
¶
HTTP status code returned for this error type.
to_response(show_traceback=False)
¶
Convert the error to a FastAPI JSON response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
show_traceback
|
bool
|
Whether to include the full traceback in the response. |
False
|
Returns:
| Type | Description |
|---|---|
JSONResponse
|
A JSON response containing the error message, args, and optional traceback. |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/error.py
BadRequest
¶
Unauthorized
¶
Forbidden
¶
NotFound
¶
Conflict
¶
InternalServerError
¶
options: show_root_heading: false
플러그인 진입점¶
spakky.plugins.fastapi.main
¶
Plugin initialization for FastAPI integration.
Registers post-processors that enable automatic route registration and built-in middleware injection for FastAPI applications.
initialize(app)
¶
Initialize the FastAPI plugin.
Registers post-processors for automatic route registration and middleware injection. This function is called automatically by the Spakky framework during plugin loading.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
app
|
SpakkyApplication
|
The Spakky application instance. |
required |
Source code in plugins/spakky-fastapi/src/spakky/plugins/fastapi/main.py
options: show_root_heading: false