쿼리 라이브러리외부 API에서 데이터 필터링하기
외부 API에서 데이터 필터링하기
외부 API에서 데이터를 가져와야 하지만 특정 조건을 만족하는 결과(예: 필드가 비어 있지 않은 값을 가지는 경우)만 필요하고, API가 필터링을 지원하지 않는 경우, Gato GraphQL을 사용하여 조건을 만족하지 않는 항목을 제거하는 API 게이트웨이를 구현할 수 있습니다.
예를 들어, 어떤 WordPress 사이트의 REST API 엔드포인트 /users를 호출할 때, 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
}