Libreria di queriesFiltrare dati da un'API esterna
Filtrare dati da un'API esterna
Se abbiamo bisogno di recuperare dati da un'API esterna, ma vogliamo solo i risultati che soddisfano una condizione (come avere un campo con un valore non vuoto), e l'API non supporta il filtraggio, possiamo usare Gato GraphQL per implementare un gateway API che rimuove le voci che non soddisfano la nostra condizione.
Ad esempio, quando si richiama l'endpoint REST API /users di un sito WordPress, possiamo escludere gli utenti il cui campo url è vuoto:
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
}