Skip to content

[BUG]: passing ORJSONResponse double encodes the response #436

Open
@jjfantini

Description

@jjfantini

I cannot pass a direct FastAPI response like JSON/ORJSONResponse as an output for the FastAPI route; when I do, the first response is correct, but then the first cache HIT is double encoded.

Setup

    redis = await aioredis.Redis(
        host="localhost",
        port=6379,
        db=1,
        decode_responses=False,
    )
    FastAPICache.init(RedisBackend(redis), prefix="fastapi-cache")

The double encoded data comes if the return object is like:

return ORJSONResponse(content=result)

The result object is a list of dicts result = lf.collect().to_dicts(). This turns a LazyFrame into a list of dicts list[dict[str, Any]] .

If I pass the object directly then it works, but how can I pass the direct response, to bypass FastAPIs encoding or passing the custom ORJSONResponse so that the encoding engine uses orjson and not just json

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is neededneeds-triageNeeds to be reviewed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions