ไลบรารี FastAPI Base Repository
(github.com/4jades)ในการทำ CRUD บนพื้นฐาน ORM โค้ดคิวรีที่ซ้ำกันมักสะสมเพิ่มขึ้นเรื่อย ๆ
ในทีมของพวกเราก็มีโค้ด boilerplate ที่มีแพตเทิร์นคล้ายกันเพิ่มขึ้นตามแต่ละโมเดลเช่นกัน
และก็หาไลบรารีที่ตอบโจทย์ทั้งสไตล์ SQLAlchemy v2, ความปลอดภัยด้านชนิดข้อมูล และการแมปสคีมาของ Pydantic v2 ไปพร้อมกันได้ยาก
ด้วยเหตุนี้ เราจึงถือโอกาสนี้จัดระเบียบ Repository layer แบบเรียบง่าย
เพื่อลด boilerplate ของ SQLAlchemy CRUD ให้อยู่ในรูปของไลบรารี
- หากกำหนด Model และ Schema บนพื้นฐาน generic ก็จะได้ CRUD มาให้อัตโนมัติ
- และยังจัดทำ overload เพื่อให้ mypy อนุมานชนิดผลลัพธ์ได้อย่างแม่นยำ
- หากจำเป็น ก็สามารถเปลี่ยนเฉพาะ Mapper เพื่อใช้กลยุทธ์สคีมาที่หลากหลายได้
ในทีมของเรา สิ่งนี้ช่วยลดปริมาณโค้ด SQLAlchemy CRUD ได้พอสมควร
หากคุณกำลังเจอปัญหาคล้ายกัน ลองนำไปอ้างอิงดูได้
และถ้าได้ลองใช้แล้วมีความเห็นอย่างไร เรายินดีรับฟังและจะนำไปปรับใช้อย่างเต็มที่
ยังไม่มีความคิดเห็น