Thư viện QueriesLọc dữ liệu từ API bên ngoài
Lọc dữ liệu từ API bên ngoài
Nếu chúng ta cần lấy dữ liệu từ một API bên ngoài nhưng chỉ cần những kết quả thỏa mãn một điều kiện nhất định (chẳng hạn như có trường với giá trị không rỗng), và API đó không hỗ trợ lọc, chúng ta có thể sử dụng Gato GraphQL để triển khai một API gateway loại bỏ các mục không thỏa mãn điều kiện của mình.
Ví dụ, khi gọi endpoint REST API /users từ một trang WordPress, chúng ta có thể lọc bỏ những người dùng có trường url rỗng:
query FilterDataFromWordPressAPI(
# eg: https://somesite.com/wp-json/wp/v2/users/?_fields=id,name,url
$endpointURL: URL!
) {
usersWithWebsiteURL: _sendJSONObjectCollectionHTTPRequest(
input: {
url: $endpointURL
}
)
# Remove users without a website URL
@underEachArrayItem(
passValueOnwardsAs: "userDataEntry"
affectDirectivesUnderPos: [1, 2, 3]
)
@applyField(
name: "_objectProperty"
arguments: {
object: $userDataEntry
by: {
key: "url"
}
}
passOnwardsAs: "websiteURL"
)
@applyField(
name: "_isEmpty"
arguments: {
value: $websiteURL
}
passOnwardsAs: "isWebsiteURLEmpty"
)
@if(
condition: $isWebsiteURLEmpty
)
@setNull
@arrayFilter
}