Tiện ích đầu ra
Đặc tả GraphQL mô tả chi tiết cách định dạng phản hồi, bao gồm việc xác định các mục cấp cao nhất cần có trong bản đồ được trả về: dữ liệu được truy vấn được thêm vào mục data, và các lỗi được thêm vào mục errors.
Nhưng đôi khi chúng ta cần xuất thêm thông tin, chẳng hạn như nhật ký, cảnh báo hoặc gợi ý. Những mục này không được đặc tả đề cập đến, và chúng ta không được phép thêm chúng dưới một mục cấp cao nhất riêng. Thay vào đó, đặc tả GraphQL cung cấp một vị trí đặc biệt mà chúng ta có thể điền tùy ý, để truyền bất kỳ dữ liệu tùy chỉnh nào mình muốn: mục extensions ở cấp cao nhất.
Như đã giải thích trong phần Response Format:
The response map may also contain an entry with key
extensions. This entry, if set, must have a map as its value. This entry is reserved for implementors to extend the protocol however they see fit, and hence there are no additional restrictions on its contents.
Tính năng "Proactive Feedback" của Gato GraphQL sử dụng khả năng này để mở rộng phản hồi của GraphQL API nhằm cung cấp thêm thông tin:
- Deprecations
- Warnings
Chúng ta có thể cung cấp thêm thông tin cho người dùng, nhằm chỉ ra những cải tiến tiềm năng cho query:
{
"extensions": {
"warnings": [
{
"message": "Dynamic variable with name 'props' had already been set, had its value overridden",
"locations": [
{
"line": 4,
"column": 25
}
]
}
]
},
"data": {
"posts": {
"excerpt": "Hello world!",
"Content": "<p>Hello world!</p>"
}
}
}