Библиотека queriesФильтрация данных из внешнего API
Фильтрация данных из внешнего API
Если нам нужно получить данные из внешнего API, но нужны только те результаты, которые удовлетворяют некоторому условию (например, наличие поля с непустым значением), а API не поддерживает фильтрацию, мы можем использовать Gato GraphQL для реализации шлюза API, который удаляет записи, не соответствующие нашему условию.
Например, при вызове endpoint REST API /users с какого-либо сайта WordPress можно отфильтровать пользователей с пустым полем 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
}