
Django & GraphQL
GraphQL với Django, Strawberry/Graphene, schema, queries, mutations, subscriptions, xác thực, DataLoader, vấn đề N+1
1GraphQL là gì và sự khác biệt chính của nó so với REST là gì?
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.
2Hai thư viện GraphQL chính có sẵn cho Django là gì?
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.
3Là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?
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.
Resolver trong GraphQL là gì và vai trò của nó là gì?
Sự khác biệt giữa Query và Mutation trong GraphQL là gì?
+21 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Django khác
Kiến thức cơ bản về Python
Python hướng đối tượng
Kiến thức cơ bản về Django
Models Django - Cơ bản
Django Views
Template Django
Django Forms
QuerySets nâng cao
Xác thực Django
Middleware Django
Django Admin
Django REST Framework
Signal trong Django
Tải tệp lên
Caching trong Django
Session Django
Email trong Django
Kiểm thử Django
Bảo mật Django
Triển khai Django
Django ORM nâng cao
Hiệu năng Django
Django & Celery
Django Channels
Django & Docker
Django trong hệ sinh thái Microservices
Lệnh Django tùy chỉnh
Quốc tế hóa trong Django
Design Patterns trong Django
Django Async & ASGI
Settings & Cấu hình Production
Observability & Monitoring
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í