Cloudflare Docs
Workers
Edit this page on GitHub
Set theme to dark (⇧+D)

Aggregate requests

Send two GET request to two urls and aggregates the responses into one response.
export default {
async fetch(request) {
// someHost is set up to return JSON responses
const someHost = "https://jsonplaceholder.typicode.com";
const url1 = someHost + "/todos/1";
const url2 = someHost + "/todos/2";
const responses = await Promise.all([fetch(url1), fetch(url2)]);
const results = await Promise.all(responses.map((r) => r.json()));
const options = {
headers: { "content-type": "application/json;charset=UTF-8" },
};
return new Response(JSON.stringify(results), options);
},
};
export default {
async fetch(request) {
// someHost is set up to return JSON responses
const someHost = "https://jsonplaceholder.typicode.com";
const url1 = someHost + "/todos/1";
const url2 = someHost + "/todos/2";
const responses = await Promise.all([fetch(url1), fetch(url2)]);
const results = await Promise.all(responses.map(r => r.json()));
const options = {headers: {"content-type": "application/json;charset=UTF-8"}};
return new Response(JSON.stringify(results), options);
},
} satisfies ExportedHandler;
from js import Response, fetch, Headers, JSON, Promise
async def on_fetch(request):
# some_host is set up to return JSON responses
some_host = "https://jsonplaceholder.typicode.com"
url1 = some_host + "/todos/1"
url2 = some_host + "/todos/2"
responses = await Promise.all([fetch(url1), fetch(url2)])
results = await Promise.all(map(lambda r: r.json(), responses))
headers = Headers.new({"content-type": "application/json;charset=UTF-8"}.items())
return Response.new(JSON.stringify(results), headers=headers)