Bộ Nhớ Đệm Phân Giải Trường
Bổ sung directive @cache vào schema GraphQL, giúp lưu trữ kết quả của một trường ra đĩa trong một khoảng thời gian được yêu cầu. Khi thực thi cùng một trường trong khoảng thời gian đó, giá trị được lưu trong bộ nhớ đệm sẽ được trả về.
Thêm @cache vào trường cần lưu đệm trong GraphQL query, chỉ định thời gian (tính bằng giây) mà kết quả cần được lưu vào bộ nhớ đệm.
Directive này có thể tăng hiệu suất khi thực thi các thao tác tốn kém (chẳng hạn như khi tương tác với các API bên ngoài), vì chúng ta có thể lưu vào bộ nhớ đệm và tái sử dụng phản hồi của chúng.
Ví Dụ
@strTranslate kết nối đến Google Translate API. Bằng cách sử dụng @cache(time: 10), giá trị đã dịch của trường title sẽ được lưu vào bộ nhớ đệm trong 10 giây, và việc thực thi lại cùng một query trong khoảng thời gian này sẽ tránh kết nối đến Google Translate, mang lại tốc độ phân giải rất nhanh.
query {
posts(pagination:{ limit: 3 }) {
id
title
@strTranslate(from: "en", to: "es")
@cache(time: 10)
}
}