Django

Django & GraphQL

GraphQL mit Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, Authentifizierung, DataLoader, N+1-Problem

24 Interview-Fragen·
Senior
1

Was ist GraphQL und was ist sein wesentlicher Unterschied zu REST?

Antwort

GraphQL ist eine von Facebook entwickelte Abfragesprache für APIs. Anders als REST, das mehrere Endpoints mit festen Datenstrukturen bereitstellt, verwendet GraphQL einen einzigen Endpoint, der es dem Client ermöglicht, genau die benötigten Daten anzugeben. Dies löst die bei REST üblichen Probleme des Over-Fetching (zu viele Daten empfangen) und Under-Fetching (mehrere Anfragen stellen müssen).

2

Was sind die beiden wichtigsten GraphQL-Bibliotheken, die für Django verfügbar sind?

Antwort

Strawberry und Graphene-Django sind die beiden wichtigsten GraphQL-Bibliotheken für Django. Graphene-Django ist ausgereifter und weit verbreitet und verwendet eine klassenbasierte Syntax. Strawberry ist moderner, nutzt native Python-Type-Hints und bietet eine bessere Integration mit Typing-Tools. Strawberry wird für neue Projekte empfohlen, da es eine pythonischere Syntax und native Async-Unterstützung bietet.

3

Wie definiert man mit Strawberry einen einfachen GraphQL-Typ, um ein Django-User-Modell darzustellen?

Antwort

Mit Strawberry wird der Decorator @strawberry.type auf einer Dataclass-Klasse verwendet, um einen GraphQL-Typ zu definieren. Felder werden mit Standard-Python-Type-Hints (str, int usw.) deklariert. Dieser Ansatz nutzt das native Typsystem von Python, macht den Code lesbarer und ermöglicht eine bessere Integration mit IDEs und Typprüfungstools wie mypy.

4

Was ist ein Resolver in GraphQL und was ist seine Rolle?

5

Was ist der Unterschied zwischen einer Query und einer Mutation in GraphQL?

+21 Interview-Fragen

Meistere Django für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten