Section 6: Lab: Route, Controller และ Service
- เส้นทางของ Request ใน Strapi ตั้งแต่ Route ถึง Service
- สร้างด้วย Core Router, Controller และ Service แล้วขยายความสามารถ
- เพิ่ม Custom Route และ Action ของตัวเอง
- Sanitize และ Validate ข้อมูลก่อนส่งกลับ
- Lab: Endpoint ลงทะเบียนอบรมที่ตรวจที่นั่งว่างก่อนบันทึก
Section 7: Lab: Document Service API
- strapi.documents() กับคำสั่ง findMany, findOne, create และ update
- ทำงานกับ documentId, locale และ status
- publish, unpublish และ discardDraft จากโค้ด
- ย้ายโค้ดจาก Entity Service ของ Strapi 4 มาเป็น Document Service
- Lab: Service สรุปจำนวนผู้ลงทะเบียนต่อรอบอบรม
Section 8: Lab: Policy, Middleware และ Document Service Middleware
- Policy สำหรับตรวจสิทธิ์ก่อนเข้าถึง Route
- Route Middleware และ Global Middleware
- Document Service Middleware ด้วย strapi.documents.use() แทนรูปแบบเดิมของ Strapi 4
- จัดการ Error และส่งข้อความผิดพลาดที่เป็นมาตรฐาน
- Lab: ให้ผู้ใช้แก้ไขได้เฉพาะข้อมูลการลงทะเบียนของตนเอง
Section 9: Lab: Authentication, JWT และ API Token
- สมัครและ Login ผ่าน /api/auth/local และการใช้ JWT
- Role และ Permission ของ Users & Permissions
- API Token สำหรับเชื่อมระหว่างระบบ และการกำหนดสิทธิ์แบบละเอียด
- ตั้งค่า CORS, Rate Limit และค่าความปลอดภัยใน Production
- Lab: แยกสิทธิ์ผู้เรียน เจ้าหน้าที่ และระบบภายนอก
Section 10: Lab: GraphQL API
- ติดตั้ง Plugin GraphQL และเปิด GraphQL Sandbox
- Query และ Mutation ที่ Strapi สร้างให้อัตโนมัติ
- ส่ง JWT กับ GraphQL และจำกัดความลึกของ Query
- เลือกใช้ REST หรือ GraphQL ให้เหมาะกับ Frontend
- Lab: ดึงหลักสูตรพร้อมรอบอบรมด้วย GraphQL Query เดียว