はじめに
Pythonがスネークケースが主流であるのに対し、JavaScriptはキャメルケースが主流です。
JSONを返却する際にキャメルケースに変換する方法をまとめました。
FastAPIは、2023年現在ではまだまだ発展途上のフレームワークで、記述方法も都度変わっています。2023年時点での最新情報であることをご了承ください。
対象者
この記事は下記のような人を対象にしています。
- FastAPIでAPI開発をしている人
- pydantic1を使用していたが、
前提
- FastAPIのバージョン: 0.103.2
- pydanticのバージョン: 2.4.2
pydanticのバージョンが古い場合とは書き方が異なることに十分ご注意ください。
結論
データベースからUserデータを取得し、JSON形式で返却する場合を考えます。
ConfigDict
を使用するのがポイントです。
user_schema.py
from pydantic import BaseModel, ConfigDict
from pydantic.alias_generators import to_camel
class BaseSchema(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, populate_by_name=True)
class UserSchema(BaseSchema):
id: int
name: str
おわりに
【2023年版】 pydantic2でFastAPIでスネークケースをキャメルケースに自動変換するについてまとめました。
参考記事
Convert FastAPI snake case json response to camel case
FastAPIがPydantic v2対応したので、V2移行のポイントを紹介する(意外と簡単)