Skip to content

ccproxy.api.responses

ccproxy.api.responses

Custom response classes for preserving proxy headers.

ProxyResponse

ProxyResponse(
    content=None,
    status_code=200,
    headers=None,
    media_type=None,
    background=None,
)

Bases: Response

Custom response class that preserves all headers from upstream API.

This response class ensures that headers like 'server' from the upstream API are preserved and not overridden by Uvicorn/Starlette.

Parameters:

Name Type Description Default
content Any

Response content

None
status_code int

HTTP status code

200
headers dict[str, str] | None

Headers to preserve from upstream

None
media_type str | None

Content type

None
background Any

Background task

None
Source code in ccproxy/api/responses.py
def __init__(
    self,
    content: Any = None,
    status_code: int = 200,
    headers: dict[str, str] | None = None,
    media_type: str | None = None,
    background: Any = None,
):
    """Initialize the proxy response with preserved headers.

    Args:
        content: Response content
        status_code: HTTP status code
        headers: Headers to preserve from upstream
        media_type: Content type
        background: Background task
    """
    super().__init__(
        content=content,
        status_code=status_code,
        headers=headers,
        media_type=media_type,
        background=background,
    )
    # Store original headers for preservation
    self._preserve_headers = headers or {}