Django

Django & GraphQL

Djangoを使ったGraphQL、Strawberry/Graphene、schema、queries、mutations、subscriptions、認証、DataLoader、N+1問題

24 面接問題·
Senior
1

GraphQLとは何ですか、そしてRESTとの主な違いは何ですか?

回答

GraphQLはFacebookが開発したAPI向けのクエリ言語です。固定されたデータ構造を返す複数のendpointを公開するRESTとは異なり、GraphQLは単一のendpointを使用し、クライアントが必要なデータを正確に指定できるようにします。これにより、RESTでよく見られるover-fetching(過剰なデータの受信)やunder-fetching(複数のリクエストを行う必要があること)の問題が解決されます。

2

Django向けに利用できる2つの主要なGraphQLライブラリは何ですか?

回答

StrawberryとGraphene-DjangoがDjango向けの2つの主要なGraphQLライブラリです。Graphene-Djangoはより成熟しており広く採用されていて、クラスベースの構文を使用します。Strawberryはより現代的で、ネイティブのPython type hintsを使用し、型付けツールとの統合に優れています。Strawberryはよりpythonicな構文とネイティブのasyncサポートにより、新規プロジェクトに推奨されます。

3

DjangoのUserモデルを表現するために、Strawberryで単純なGraphQL型を定義するにはどうすればよいですか?

回答

Strawberryでは、@strawberry.typeデコレータをdataclassのクラスに使用してGraphQL型を定義します。フィールドは標準的なPythonのtype hints(str、intなど)で宣言されます。このアプローチはPythonのネイティブな型システムを活用し、コードをより読みやすくし、IDEやmypyのような型チェックツールとの統合を向上させます。

4

GraphQLにおけるresolverとは何ですか、そしてその役割は何ですか?

5

GraphQLにおけるQueryとMutationの違いは何ですか?

+21 面接問題

次の面接に向けてDjangoをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める