Biblioteca de queriesFiltrar datos desde una API externa
Filtrar datos desde una API externa
Si necesitamos obtener datos desde una API externa, pero solo queremos los resultados que cumplan alguna condición (como tener un campo con un valor no vacío), y la API no admite filtrado, podemos usar Gato GraphQL para implementar una pasarela de API que elimine las entradas que no cumplan nuestra condición.
Por ejemplo, al invocar el endpoint REST API /users de algún sitio WordPress, podemos descartar los usuarios que tengan el campo url vacío:
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
}