# Django & GraphQL (Django) > GraphQL กับ Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, การยืนยันตัวตน, DataLoader, ปัญหา N+1 - 24 คำถามสัมภาษณ์ - Senior - [คำถามสัมภาษณ์: Django](https://sharpskill.dev/th/technologies/django/interview-questions.md) ## 1. GraphQL คืออะไรและความแตกต่างหลักจาก REST คืออะไร? **คำตอบ** GraphQL เป็นภาษาคิวรีสำหรับ API ที่พัฒนาโดย Facebook ต่างจาก REST ที่เปิดเผย endpoint หลายตัวซึ่งคืนค่าโครงสร้างข้อมูลแบบตายตัว GraphQL ใช้ endpoint เดียวที่ให้ไคลเอนต์ระบุข้อมูลที่ต้องการได้อย่างแม่นยำ สิ่งนี้แก้ปัญหา over-fetching (รับข้อมูลมากเกินไป) และ under-fetching (ต้องส่งหลายคำขอ) ที่พบได้ทั่วไปใน REST ## 2. ไลบรารี GraphQL หลักสองตัวที่มีให้ใช้สำหรับ Django คืออะไร? **คำตอบ** Strawberry และ Graphene-Django เป็นไลบรารี GraphQL หลักสองตัวสำหรับ Django โดย Graphene-Django มีความเสถียรกว่าและถูกนำไปใช้อย่างกว้างขวาง ใช้ไวยากรณ์แบบคลาส ส่วน Strawberry ทันสมัยกว่า ใช้ type hints ของ Python แบบ native และให้การผสานรวมที่ดีกว่ากับเครื่องมือตรวจสอบชนิดข้อมูล Strawberry แนะนำสำหรับโปรเจกต์ใหม่เนื่องจากไวยากรณ์ที่เป็น pythonic มากกว่าและรองรับ async แบบ native ## 3. จะกำหนด GraphQL type อย่างง่ายด้วย Strawberry เพื่อแทน Django User model ได้อย่างไร? **คำตอบ** ใน Strawberry จะใช้เดคอเรเตอร์ @strawberry.type บนคลาส dataclass เพื่อกำหนด GraphQL type ฟิลด์ถูกประกาศด้วย type hints มาตรฐานของ Python (str, int ฯลฯ) แนวทางนี้ใช้ประโยชน์จากระบบ typing แบบ native ของ Python ทำให้โค้ดอ่านง่ายขึ้นและผสานรวมได้ดีขึ้นกับ IDE และเครื่องมือตรวจสอบชนิดข้อมูลอย่าง mypy ## มีอีก 21 คำถาม - resolver ใน GraphQL คืออะไรและมีหน้าที่อะไร? - ความแตกต่างระหว่าง Query และ Mutation ใน GraphQL คืออะไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Django อื่นๆ - [พื้นฐาน Python](https://sharpskill.dev/th/technologies/django/interview-questions/python-basics.md): 25 คำถาม, Junior - [Python เชิงวัตถุ](https://sharpskill.dev/th/technologies/django/interview-questions/python-oop.md): 20 คำถาม, Junior - [พื้นฐาน Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-fundamentals.md): 20 คำถาม, Junior - [Django Models - พื้นฐาน](https://sharpskill.dev/th/technologies/django/interview-questions/django-models-basics.md): 22 คำถาม, Junior - [Django Views](https://sharpskill.dev/th/technologies/django/interview-questions/django-views.md): 20 คำถาม, Junior - [เทมเพลต Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-templates.md): 18 คำถาม, Junior - [ฟอร์ม Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-forms.md): 22 คำถาม, Mid-Level - [QuerySets ขั้นสูง](https://sharpskill.dev/th/technologies/django/interview-questions/django-querysets.md): 25 คำถาม, Mid-Level - [การยืนยันตัวตนใน Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-authentication.md): 22 คำถาม, Mid-Level - [Django Middleware](https://sharpskill.dev/th/technologies/django/interview-questions/django-middleware.md): 18 คำถาม, Mid-Level - [Django Admin](https://sharpskill.dev/th/technologies/django/interview-questions/django-admin.md): 20 คำถาม, Mid-Level - [Django REST Framework](https://sharpskill.dev/th/technologies/django/interview-questions/django-rest-framework.md): 30 คำถาม, Mid-Level - [Django Signals](https://sharpskill.dev/th/technologies/django/interview-questions/django-signals.md): 18 คำถาม, Mid-Level - [การอัปโหลดไฟล์](https://sharpskill.dev/th/technologies/django/interview-questions/django-file-upload.md): 20 คำถาม, Mid-Level - [การแคชใน Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-caching.md): 20 คำถาม, Mid-Level - [Django Sessions](https://sharpskill.dev/th/technologies/django/interview-questions/django-sessions.md): 18 คำถาม, Mid-Level - [อีเมลใน Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-email.md): 18 คำถาม, Mid-Level - [การทดสอบ Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-testing.md): 22 คำถาม, Mid-Level - [ความปลอดภัยของ Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-security.md): 22 คำถาม, Mid-Level - [การ Deploy Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-deployment.md): 24 คำถาม, Mid-Level - [Django ORM ขั้นสูง](https://sharpskill.dev/th/technologies/django/interview-questions/django-orm-advanced.md): 28 คำถาม, Senior - [ประสิทธิภาพของ Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-performance.md): 24 คำถาม, Senior - [Django & Celery](https://sharpskill.dev/th/technologies/django/interview-questions/django-celery.md): 22 คำถาม, Senior - [Django Channels](https://sharpskill.dev/th/technologies/django/interview-questions/django-channels.md): 24 คำถาม, Senior - [Django & Docker](https://sharpskill.dev/th/technologies/django/interview-questions/django-docker.md): 20 คำถาม, Senior - [Django ในระบบนิเวศ Microservices](https://sharpskill.dev/th/technologies/django/interview-questions/django-microservices.md): 24 คำถาม, Senior - [คำสั่ง Django แบบกำหนดเอง](https://sharpskill.dev/th/technologies/django/interview-questions/django-custom-commands.md): 18 คำถาม, Senior - [การทำให้รองรับหลายภาษาใน Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-internationalization.md): 20 คำถาม, Senior - [Design Patterns ใน Django](https://sharpskill.dev/th/technologies/django/interview-questions/django-design-patterns.md): 24 คำถาม, Senior - [Django Async และ ASGI](https://sharpskill.dev/th/technologies/django/interview-questions/django-async-asgi.md): 26 คำถาม, Senior - [Settings และการตั้งค่า Production](https://sharpskill.dev/th/technologies/django/interview-questions/django-settings-configuration.md): 22 คำถาม, Senior - [Observability และ Monitoring](https://sharpskill.dev/th/technologies/django/interview-questions/django-observability.md): 24 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/django/interview-questions/django-graphql