
Django & GraphQL
GraphQL con Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, autenticazione, DataLoader, problema N+1
1Cos'è GraphQL e qual è la sua principale differenza rispetto a REST?
Cos'è GraphQL e qual è la sua principale differenza rispetto a REST?
Risposta
GraphQL è un linguaggio di query per API sviluppato da Facebook. A differenza di REST, che espone più endpoint che restituiscono strutture dati fisse, GraphQL utilizza un singolo endpoint che consente al client di specificare esattamente i dati di cui ha bisogno. Questo risolve i problemi di over-fetching (ricevere troppi dati) e under-fetching (dover effettuare più richieste) comuni con REST.
2Quali sono le due principali librerie GraphQL disponibili per Django?
Quali sono le due principali librerie GraphQL disponibili per Django?
Risposta
Strawberry e Graphene-Django sono le due principali librerie GraphQL per Django. Graphene-Django è più matura e ampiamente adottata, utilizza una sintassi basata sulle classi. Strawberry è più moderna, usa i type hints nativi di Python e offre una migliore integrazione con gli strumenti di tipizzazione. Strawberry è consigliata per i nuovi progetti grazie alla sua sintassi più pythonica e al supporto async nativo.
3Come definire un tipo GraphQL semplice con Strawberry per rappresentare un modello User di Django?
Come definire un tipo GraphQL semplice con Strawberry per rappresentare un modello User di Django?
Risposta
Con Strawberry, il decoratore @strawberry.type viene usato su una classe dataclass per definire un tipo GraphQL. I campi sono dichiarati con i type hints standard di Python (str, int, ecc.). Questo approccio sfrutta il sistema di tipizzazione nativo di Python, rendendo il codice più leggibile e consentendo una migliore integrazione con gli IDE e gli strumenti di controllo dei tipi come mypy.
Cos'è un resolver in GraphQL e qual è il suo ruolo?
Qual è la differenza tra una Query e una Mutation in GraphQL?
+21 domande da colloquio
Altri argomenti di colloquio Django
Fondamenti di Python
Python orientato agli oggetti
Fondamenti di Django
Models Django - Fondamenti
Viste Django
Template Django
Form Django
QuerySet avanzati
Autenticazione Django
Middleware Django
Django Admin
Django REST Framework
Segnali Django
Caricamento file
Caching di Django
Sessioni Django
Email in Django
Testing in Django
Sicurezza di Django
Deployment di Django
Django ORM avanzato
Prestazioni di Django
Django & Celery
Django Channels
Django & Docker
Django in un ecosistema di microservizi
Comandi Django personalizzati
Internazionalizzazione in Django
Design Pattern in Django
Django Async e ASGI
Settings e configurazione di produzione
Observability e monitoring
Padroneggia Django per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis