カテゴリ
marshmallow(Python シリアライズ/バリデーション)の実装ガイド
marshmallow は『Python オブジェクト ⇄ dict/JSON』の双方向変換を Schema として宣言し、信頼できない外部入力を load() で検証して堰き止め、内部の値を dump() で安全に整形する、ORM/フレームワーク非依存のシリアライズ/バリデーションライブラリです。本クラスタは、Schema/fields の基礎と境界設計(dump_only/load_only/unknown でマスアサインメントと機密漏洩を防ぐ)、業務ルールを持つ値を再利用可能な型にするカスタムフィールド、Flask×SQLAlchemy(marshmallow-sqlalchemy)での本番 REST API、スキーマ再利用・テスト・可観測性による本番品質化、marshmallow 3→4 の破壊的変更の安全な移行、そして Pydantic との使い分けまでを扱います。経済産業大臣賞を受賞した B2B SaaS のバックエンド(Flask/SQLAlchemy)で marshmallow を本番運用した知見を根拠に、型安全・セキュリティ・テスト容易性を担保した設計を、公式ドキュメントに忠実な実コードで体系化します。
全 6 記事
基礎ガイド
基礎ガイド(まずはここから)
marshmallow 実践ガイド:Python オブジェクトのシリアライズ/検証を境界で堅牢に設計する(v4対応)
marshmallow公式ドキュメント(v4.3)に忠実に、Schema/fieldsの双方向シリアライズ、load()による境界バリデーション、@validates/@validates_schema、Nested、load_only/dump_onlyの安全設計、marshmallow-sqlalchemy連携、3→4移行、Pydanticとの使い分けまでを実務観点で解説します。
関連する実践記事
- Pythonmarshmallowマイグレーション型安全テスト
marshmallow 3 → 4 移行完全ガイド:破壊的変更を安全に乗り越える
marshmallow 4の破壊的変更を公式アップグレードガイドに忠実に整理。missing/default→load_default/dump_default、pass_many→pass_collection、抽象基底クラスのインスタンス化禁止、validatorはValidationErrorをraise、Schema.context→contextvars、暗黙フィールド廃止までをbefore/afterで示し、段階的に移行する手順を解説します。
24分 - Pythonmarshmallowバリデーション型安全ドメインモデリング
marshmallow カスタムフィールドと高度なバリデーション:再利用可能なドメイン型を設計する
marshmallowのカスタムフィールドを公式仕様に忠実に解説。fields.Field[T]と_serialize/_deserialize、make_errorとerror_messagesのi18n、金額(Decimal)・電話(E.164)・列挙(fields.Enum)など再利用可能なドメイン型、fields.Method/Function/Constant、既存フィールド拡張までを実コードで示します。
22分 - PythonmarshmallowFlaskSQLAlchemyREST API
marshmallow × Flask × SQLAlchemy で本番REST APIを設計する:境界バリデーションとレスポンス整形
marshmallow-sqlalchemyのSQLAlchemyAutoSchema・load_instance・auto_fieldを使い、Flask×SQLAlchemyで本番REST APIを設計。load()による入力境界、dump()によるレスポンス整形、ValidationErrorの集約ハンドラで422を返すCRUD、ネスト/リレーション、ページネーション、テストまでを実コードで解説します。
23分 - Pythonmarshmallowパフォーマンステスト可観測性
marshmallow を本番品質にする:パフォーマンス最適化・テスト・エラー設計
marshmallowを本番運用に耐える品質へ。スキーマインスタンスの再利用、only/excludeによる出力削減、register=Falseのメモリ最適化、pytestでの往復・正常系/異常系テスト、PIIを除いた構造化エラーログ、検証失敗の可観測性までを実コードで解説します。
25分 - PythonmarshmallowPydanticシリアライズバリデーション
marshmallow vs Pydantic 徹底比較:設計思想・性能・エコシステムで選ぶ(2026年・意思決定ガイド)
marshmallowとPydantic v2を公式仕様に基づき徹底比較。記述子型スキーマvs型アノテーション、Rust製コアの性能差、Flask/SQLAlchemyとFastAPIのエコシステム、双方向シリアライズ、同一データの複数ビュー、共存と移行までを実コードで解説し、案件に応じた選定基準を示します。
20分