Biblioteka queriesFiltrowanie danych z zewnętrznego API
Filtrowanie danych z zewnętrznego API
Jeśli potrzebujemy pobrać dane z zewnętrznego API, ale potrzebujemy tylko tych wyników, które spełniają określony warunek (np. posiadania pola z niepustą wartością), a API nie obsługuje filtrowania, możemy użyć Gato GraphQL do zaimplementowania bramki API, która usuwa wpisy niespełniające naszego warunku.
Na przykład, wywołując endpoint REST API /users z jakiejś witryny WordPress, możemy odfiltrować tych użytkowników, którzy mają puste pole url:
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
}