Django

Django & GraphQL

GraphQL với Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, xác thực, DataLoader, vấn đề N+1

24 câu hỏi phỏng vấn·
Senior
1

GraphQL là gì và sự khác biệt chính của nó so với REST là gì?

Câu trả lời

GraphQL là một ngôn ngữ truy vấn cho API được phát triển bởi Facebook. Không giống như REST vốn cung cấp nhiều endpoint trả về các cấu trúc dữ liệu cố định, GraphQL sử dụng một endpoint duy nhất cho phép client chỉ định chính xác dữ liệu mà nó cần. Điều này giải quyết các vấn đề over-fetching (nhận quá nhiều dữ liệu) và under-fetching (phải thực hiện nhiều yêu cầu) thường gặp với REST.

2

Hai thư viện GraphQL chính có sẵn cho Django là gì?

Câu trả lời

Strawberry và Graphene-Django là hai thư viện GraphQL chính cho Django. Graphene-Django trưởng thành hơn và được sử dụng rộng rãi, dùng cú pháp dựa trên lớp. Strawberry hiện đại hơn, sử dụng type hints native của Python và tích hợp tốt hơn với các công cụ kiểm tra kiểu. Strawberry được khuyến nghị cho các dự án mới nhờ cú pháp pythonic hơn và hỗ trợ async native.

3

Làm thế nào để định nghĩa một type GraphQL đơn giản với Strawberry để biểu diễn một model User của Django?

Câu trả lời

Với Strawberry, decorator @strawberry.type được dùng trên một lớp dataclass để định nghĩa một type GraphQL. Các trường được khai báo bằng type hints chuẩn của Python (str, int, v.v.). Cách tiếp cận này tận dụng hệ thống kiểu native của Python, giúp mã dễ đọc hơn và tích hợp tốt hơn với các IDE cũng như các công cụ kiểm tra kiểu như mypy.

4

Resolver trong GraphQL là gì và vai trò của nó là gì?

5

Sự khác biệt giữa Query và Mutation trong GraphQL là gì?

+21 câu hỏi phỏng vấn

Nắm vững Django cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí