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.