
Django & GraphQL
GraphQL з Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, автентифікація, DataLoader, проблема N+1
1Що таке GraphQL і яка його головна відмінність від REST?
Що таке GraphQL і яка його головна відмінність від REST?
Відповідь
GraphQL — це мова запитів для API, розроблена Facebook. На відміну від REST, який надає кілька endpoint із фіксованими структурами даних, GraphQL використовує єдиний endpoint, що дозволяє клієнту вказувати саме ті дані, які йому потрібні. Це вирішує проблеми over-fetching (отримання надмірної кількості даних) та under-fetching (необхідність робити кілька запитів), поширені в REST.
2Які дві основні бібліотеки GraphQL доступні для Django?
Які дві основні бібліотеки GraphQL доступні для Django?
Відповідь
Strawberry та Graphene-Django — це дві основні бібліотеки GraphQL для Django. Graphene-Django зріліша й широко поширена, використовує синтаксис на основі класів. Strawberry сучасніша, використовує нативні Python type hints і пропонує кращу інтеграцію з інструментами типізації. Strawberry рекомендується для нових проєктів завдяки більш pythonic синтаксису та нативній підтримці async.
3Як визначити простий тип GraphQL за допомогою Strawberry для представлення моделі User у Django?
Як визначити простий тип GraphQL за допомогою Strawberry для представлення моделі User у Django?
Відповідь
У Strawberry декоратор @strawberry.type застосовується до класу dataclass для визначення типу GraphQL. Поля оголошуються за допомогою стандартних Python type hints (str, int тощо). Цей підхід використовує нативну систему типізації Python, роблячи код читабельнішим і забезпечуючи кращу інтеграцію з IDE та інструментами перевірки типів, такими як mypy.
Що таке resolver у GraphQL і яка його роль?
Яка різниця між Query та Mutation у GraphQL?
+21 питань зі співбесід
Інші теми співбесід Django
Основи Python
Об'єктно-орієнтований Python
Основи Django
Models Django - Основи
Django Views
Шаблони Django
Форми Django
Розширені QuerySets
Автентифікація Django
Django Middleware
Django Admin
Django REST Framework
Сигнали Django
Завантаження файлів
Кешування в Django
Сесії Django
Email у Django
Тестування Django
Безпека Django
Розгортання Django
Просунутий Django ORM
Продуктивність Django
Django & Celery
Django Channels
Django & Docker
Django в екосистемі мікросервісів
Користувацькі команди Django
Інтернаціоналізація Django
Патерни проєктування Django
Django Async та ASGI
Settings та конфігурація для production
Спостережуваність і моніторинг
Опануй Django для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно