ไลบรารี Queriesกรองข้อมูลจาก API ภายนอก
กรองข้อมูลจาก API ภายนอก
หากเราจำเป็นต้องดึงข้อมูลจาก API ภายนอก แต่เราต้องการเฉพาะผลลัพธ์ที่ตรงตามเงื่อนไขบางอย่าง (เช่น มีฟิลด์ที่มีค่าไม่ว่างเปล่า) และ API ไม่รองรับการกรอง เราก็สามารถใช้ Gato GraphQL เพื่อสร้าง API gateway ที่ลบรายการที่ไม่ตรงตามเงื่อนไขของเราออกได้
ตัวอย่างเช่น เมื่อเรียกใช้ REST API endpoint /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
}