Django

Django & GraphQL

GraphQL con Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, autenticazione, DataLoader, problema N+1

24 domande da colloquio·
Senior
1

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.

2

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.

3

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.

4

Cos'è un resolver in GraphQL e qual è il suo ruolo?

5

Qual è la differenza tra una Query e una Mutation in GraphQL?

+21 domande da colloquio

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