Truy vấn và đột biến GraphQL: Đâu là sự khác biệt?

GraphQL là ngôn ngữ truy vấn mạnh mẽ cho phép khách hàng chỉ yêu cầu dữ liệu họ cần từ máy chủ. Nó giúp bạn tăng tốc độ yêu cầu vì bạn có thể tùy chỉnh các truy vấn để chỉ tìm nạp dữ liệu cụ thể.
GraphQL có hai loại hoạt động: truy vấn và đột biến. Mặc dù có những điểm tương đồng, nhưng chúng phục vụ các mục đích khá khác nhau.
Mục Lục
Sự khác biệt giữa Truy vấn GraphQL và Đột biến
Truy vấn và biến đổi giống nhau ở chỗ, bạn sử dụng chúng để tạo yêu cầu đối với API GraphQL. Tuy nhiên, chúng khác nhau về cú pháp, chế độ thực thi và cách sử dụng.
Cú pháp truy vấn và đột biến
Cú pháp cơ bản của truy vấn GraphQL như sau:
query getProduct($id: ID!) {
product(id: $id) {
name
price
}
}
Đây là những gì mã này là viết tắt của:
- truy vấn là từ khóa xác định yêu cầu dưới dạng truy vấn.
- getProduct là tên hoạt động
- $id là biến
- NHẬN DẠNG! là loại biến.
Nếu bạn không cần các biến, hãy bỏ qua chúng và xác định truy vấn như sau:
query getProducts {
products {
name
price
}
}
Trong một số trường hợp, bạn có thể bỏ qua từ khóa truy vấn và tên, viết truy vấn GraphQL như sau:
products {
name
price
}
Trong khi định dạng này hoạt động, việc sử dụng từ khóa truy vấn sẽ tốt hơn để dễ đọc hơn.
Cú pháp của các đột biến tương tự như các truy vấn ngoại trừ việc sử dụng từ khóa đột biến.
mutation AddNewProduct ($name: String!, $price: Number!) {
addProduct(name: $name, price: $price) {
name
price
}
}
Các chế độ thực thi khác nhau
Một điểm khác biệt nữa giữa truy vấn và đột biến là truy vấn chạy song song trong khi đột biến chạy đồng bộ. Khi bạn chạy hai đột biến, chúng sẽ thực hiện lần lượt theo thứ tự
Sử dụng tương phản cho các truy vấn và đột biến
Bạn chỉ nên sử dụng các truy vấn cho hoạt động ĐỌC. Ví dụ: sử dụng truy vấn khi tìm nạp sản phẩm từ điểm cuối API.
Sử dụng các đột biến cho các thao tác TẠO, CẬP NHẬT và XÓA. Đây thực chất là những thao tác làm thay đổi dữ liệu được lưu trữ trong cơ sở dữ liệu.
Ví dụ: sử dụng một đột biến khi cập nhật tên khách hàng qua điểm cuối đơn hàng.
Tập thói quen sử dụng truy vấn và biến đổi một cách thích hợp
GraphQL là ngôn ngữ truy vấn mạnh mẽ cho phép bạn chỉ yêu cầu dữ liệu bạn cần. Có hai thao tác bạn có thể thực hiện trong GraphQL: truy vấn và đột biến.
Các thao tác này khác nhau về cú pháp, cách thực hiện và mục đích sử dụng của chúng. Bạn nên sử dụng truy vấn cho thao tác ĐỌC và thay đổi cho thao tác TẠO, CẬP NHẬT và XÓA.