mirror of
https://github.com/fastapi/fastapi.git
synced 2026-02-05 20:01:44 -05:00
✨ Support dataclasses in responses (#3576)
Co-authored-by: amit lissack <amit@opentrons.com>
This commit is contained in:
committed by
GitHub
parent
49517d3310
commit
96fdfc53cc
@@ -1,3 +1,4 @@
|
||||
import dataclasses
|
||||
from collections import defaultdict
|
||||
from enum import Enum
|
||||
from pathlib import PurePath
|
||||
@@ -61,6 +62,8 @@ def jsonable_encoder(
|
||||
custom_encoder=encoder,
|
||||
sqlalchemy_safe=sqlalchemy_safe,
|
||||
)
|
||||
if dataclasses.is_dataclass(obj):
|
||||
return dataclasses.asdict(obj)
|
||||
if isinstance(obj, Enum):
|
||||
return obj.value
|
||||
if isinstance(obj, PurePath):
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import asyncio
|
||||
import dataclasses
|
||||
import email.message
|
||||
import enum
|
||||
import inspect
|
||||
@@ -90,6 +91,8 @@ def _prepare_response_content(
|
||||
)
|
||||
for k, v in res.items()
|
||||
}
|
||||
elif dataclasses.is_dataclass(res):
|
||||
return dataclasses.asdict(res)
|
||||
return res
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user