Query 库获取多个地点的美国天气预报数据
获取多个地点的美国天气预报数据
此 query 连接到美国国家气象局的 API,并通过给定坐标(经由变量 $coordinatesList 传入,该变量为包含 lat 和 long 条目的 JSON 对象列表)获取多个地点的天气预报数据。
query GenerateLocationURLs(
# List of JSON objects with entries `lat` and `long`
# eg: [ { "lat": 39.7456, "long": -97.0892 }, { "lat": 34.7456, "long": -77.0892 } ]
$coordinatesList: [JSONObject!]!
) {
coordinatesList: _echo(value: $coordinatesList)
@underEachArrayItem(
passValueOnwardsAs: "coordinates"
affectDirectivesUnderPos: [1, 2, 3, 4]
)
@applyField(
name: "_objectProperty",
arguments: {
by: { key: "lat" }
object: $coordinates
},
passOnwardsAs: "lat"
)
@applyField(
name: "_objectProperty",
arguments: {
by: { key: "long" }
object: $coordinates
},
passOnwardsAs: "long"
)
@applyField(
name: "_sprintf",
arguments: {
string: "https://api.weather.gov/points/%s,%s",
values: [$lat, $long]
}
passOnwardsAs: "locationURL"
)
@applyField(
name: "_echo",
arguments: {
value: {
url: $locationURL
}
}
setResultInResponse: true
)
@export(as: "coordinatesListInput")
}
query FetchUSWeatherDataForLocations
@depends(on: "GenerateLocationURLs")
{
_sendJSONObjectItemHTTPRequests(inputs: $coordinatesListInput)
}