vipr.plugins.api.fastapi.router_generator package¶
Submodules¶
vipr.plugins.api.fastapi.router_generator.constants module¶
Constants for FastAPI router generation.
Centralized configuration values to improve maintainability.
vipr.plugins.api.fastapi.router_generator.core module¶
Core utilities for FastAPI router generation.
Contains model resolution, serialization, configuration handling, parameter processing, CLI execution, and other essential utilities.
- vipr.plugins.api.fastapi.router_generator.core.create_temp_yaml(config_data: dict) str¶
Create temporary YAML file from configuration data.
- Parameters:
config_data – Configuration dictionary
- Returns:
Path to temporary YAML file
- vipr.plugins.api.fastapi.router_generator.core.create_typed_parameter(param_name: str, param_config: dict) Parameter¶
Create properly typed FastAPI parameter with security validation.
- Parameters:
param_name – Name of the parameter
param_config – Parameter configuration from @ex decorator
- Returns:
FastAPI Parameter with correct typing and validation
- vipr.plugins.api.fastapi.router_generator.core.execute_cli_command(controller_label: str, cli_command: str, config_path: str | None = None, post_args: list[str] | None = None) Any¶
Execute CLI command and handle common processing.
- vipr.plugins.api.fastapi.router_generator.core.extract_query_params_from_ex(method) dict[str, dict[str, Any]]¶
Extrahiere Query-Parameter aus @ex decorator arguments.
- vipr.plugins.api.fastapi.router_generator.core.get_current_timestamp() str¶
Get current timestamp in ISO format.
- vipr.plugins.api.fastapi.router_generator.core.handle_uuid_validation(config_data: dict) str¶
Handle UUID validation and generation for POST endpoints.
- Parameters:
config_data – Configuration data dictionary
- Returns:
Valid UUID string
- Return type:
- Raises:
HTTPException – If provided UUID is invalid
- vipr.plugins.api.fastapi.router_generator.core.process_result(result: Any, transform_fn: Any | None = None) Any¶
Apply transformation and serialization to result.
- vipr.plugins.api.fastapi.router_generator.core.python_method_to_cli_command(method_name: str) str¶
Convert Python method name to CLI command name.
Cement CLI uses hyphens while Python uses underscores. Example: ‘generate_standard_config’ -> ‘generate-standard-config’
- Parameters:
method_name – Python method name with underscores
- Returns:
CLI command name with hyphens
- vipr.plugins.api.fastapi.router_generator.core.resolve_model_type(model_ref: Any) Any | None¶
Resolve model type from BaseModel class references and generic types.
- Parameters:
model_ref – Model reference (BaseModel class, generic type, or None/dict)
- Returns:
Resolved model class or None
vipr.plugins.api.fastapi.router_generator.endpoints module¶
Endpoint factory functions for FastAPI router generation.
Creates different types of endpoints (POST, GET with params, simple GET) with proper security validation and plugin-safe execution.
- vipr.plugins.api.fastapi.router_generator.endpoints.create_get_endpoint_with_params(controller_label: str, cli_command: str, query_params: dict[str, dict[str, Any]], transform_fn: Any | None) Any¶
Create SECURE GET endpoint with query parameters.
- vipr.plugins.api.fastapi.router_generator.endpoints.create_plugin_safe_endpoint(controller_label: str, method_name: str, request_model: type[BaseModel] | None, response_model: Any | None, query_params: dict[str, dict[str, Any]], transform_fn: Any | None)¶
Create FastAPI endpoint that executes via runner.run_controller() for plugin safety.
Delegates to specialized functions based on endpoint type.
vipr.plugins.api.fastapi.router_generator.router_generator module¶
Plugin Introspection Engine
Automatically generates FastAPI routers from plugin metadata. This eliminates the need for manual HTTP ↔ CLI mapping.
- vipr.plugins.api.fastapi.router_generator.router_generator.build_router() APIRouter¶
Build FastAPI router by scanning controller methods for @api decorators.
This function introspects all loaded Cement controllers for methods decorated with @api and automatically generates corresponding FastAPI endpoints. All methods are executed via runner.run_controller() to ensure proper plugin initialization.
- Returns:
APIRouter with auto-generated endpoints
vipr.plugins.api.fastapi.router_generator.security module¶
Security validation for FastAPI router generation.
Provides parameter validation and sanitization to prevent injection attacks.
Module contents¶
Router Generator Package
Automatically generates FastAPI routers from plugin metadata.
- vipr.plugins.api.fastapi.router_generator.build_router() APIRouter¶
Build FastAPI router by scanning controller methods for @api decorators.
This function introspects all loaded Cement controllers for methods decorated with @api and automatically generates corresponding FastAPI endpoints. All methods are executed via runner.run_controller() to ensure proper plugin initialization.
- Returns:
APIRouter with auto-generated endpoints