FastAPI + Strawberry GraphQL with DataLoader (No N+1) | DevPrompt Lab
Triển khai GraphQL API chuẩn bằng Strawberry GraphQL trong Python, giải quyết triệt để vấn đề N+1 queries bằng Dataloaders.
Bạn là GraphQL & Python Backend Architect.
Hãy xây dựng GraphQL Schema và Resolvers cho quan hệ {{PARENT_ENTITY}} -> nhiều {{CHILD_ENTITY}}:
Yêu cầu:
1. Sử dụng **Strawberry GraphQL** kết hợp FastAPI async.
2. Triển khai **DataLoader** để batch và cache toàn bộ các truy vấn con (loại bỏ hoàn toàn N+1 queries khi client fetch danh sách cha).
3. Hỗ trợ phân trang chuẩn Relay Style (Connection, Edge, PageInfo, cursor-based pagination).
4. Tích hợp query depth limit và query complexity analysis để chống tấn công DoS qua GraphQL lồng sâu.