Django

Django & GraphQL

GraphQL z Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, uwierzytelnianie, DataLoader, problem N+1

24 pytań z rozmów·
Senior
1

Czym jest GraphQL i jaka jest jego główna różnica w stosunku do REST?

Odpowiedź

GraphQL to język zapytań dla API opracowany przez Facebooka. W przeciwieństwie do REST, który udostępnia wiele endpointów zwracających stałe struktury danych, GraphQL używa pojedynczego endpointu, pozwalającego klientowi określić dokładnie potrzebne dane. Rozwiązuje to problemy over-fetchingu (otrzymywania zbyt wielu danych) i under-fetchingu (konieczności wykonania wielu żądań) typowe dla REST.

2

Jakie są dwie główne biblioteki GraphQL dostępne dla Django?

Odpowiedź

Strawberry i Graphene-Django to dwie główne biblioteki GraphQL dla Django. Graphene-Django jest bardziej dojrzała i szeroko stosowana, używa składni opartej na klasach. Strawberry jest nowocześniejsza, używa natywnych type hints Pythona i oferuje lepszą integrację z narzędziami do typowania. Strawberry jest zalecana dla nowych projektów ze względu na bardziej pythoniczną składnię i natywne wsparcie async.

3

Jak zdefiniować prosty typ GraphQL za pomocą Strawberry, aby reprezentować model User w Django?

Odpowiedź

W Strawberry dekorator @strawberry.type stosuje się na klasie dataclass, aby zdefiniować typ GraphQL. Pola są deklarowane za pomocą standardowych type hints Pythona (str, int itd.). To podejście wykorzystuje natywny system typowania Pythona, czyniąc kod bardziej czytelnym i umożliwiając lepszą integrację z IDE oraz narzędziami sprawdzania typów, takimi jak mypy.

4

Czym jest resolver w GraphQL i jaka jest jego rola?

5

Jaka jest różnica między Query a Mutation w GraphQL?

+21 pytań z rozmów

Opanuj Django na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo