Serializers
A key feature of this library is its ability to serialize and restore data from objects. Each data model uses its own serializer to ensure safe data storage.
Warning
Using pickle or similar utilities can pose serious security risks.
Built-in Serializers
dict
from fastapi_authix.serializers import Serializer
# Remains unchanged, as dict is perfectly suited for JSON conversion.
json = Serializer({"test": "data"}, mode="dict").serialize()
# {"test": "data"}
dataclass
from dataclasses import dataclass
from fastapi_authix.serializers import Serializer
@dataclass(frozen=True)
class TestData:
name: str
json = Serializer(TestData(name="John"), mode="dataclass").serialize()
# {"name": "John"}
pydantic
from pydantic import BaseModel
from fastapi_authix.serializers import Serializer
class TestModel(BaseModel):
name: str
json = Serializer(TestModel(name="John"), mode="pydantic").serialize()
# {"name": "John"}
sqlalchemy
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from fastapi_authix.serializers import Serializer
class TestModel(declarative_base()):
__tablename__ = "test_model"
id = Column(Integer, primary_key=True)
name = Column(String)
json = Serializer(TestModel(id=1, name="John"), mode="sqlalchemy").serialize()
# {"id": 1, "name": "John"}