Queryライブラリ外部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
}