バルクオリジンオーバーライド
あなたのドメインへのリクエストを一連のプロキシサードパーティオリジンURLに解決します。
export default { async fetch(request) { /** * 取得するための異なるURLを持つオブジェクト * @param {Object} ORIGINS */ const ORIGINS = { "starwarsapi.yourdomain.com": "swapi.dev", "google.yourdomain.com": "www.google.com", };
const url = new URL(request.url);
// 受信したホスト名がORIGINSオブジェクトのキーであるか確認 if (url.hostname in ORIGINS) { const target = ORIGINS[url.hostname]; url.hostname = target; // もしそうであれば、そのサードパーティオリジンにリクエストをプロキシ return fetch(url.toString(), request); } // そうでなければ、リクエストを通常通り処理 return fetch(request); },};export default { async fetch(request): Promise<Response> { /** * 取得するための異なるURLを持つオブジェクト * @param {Object} ORIGINS */ const ORIGINS = { "starwarsapi.yourdomain.com": "swapi.dev", "google.yourdomain.com": "www.google.com", };
const url = new URL(request.url);
// 受信したホスト名がORIGINSオブジェクトのキーであるか確認 if (url.hostname in ORIGINS) { const target = ORIGINS[url.hostname]; url.hostname = target; // もしそうであれば、そのサードパーティオリジンにリクエストをプロキシ return fetch(url.toString(), request); } // そうでなければ、リクエストを通常通り処理 return fetch(request); },} satisfies ExportedHandler;from js import fetch, URL
async def on_fetch(request): # 取得するための異なるURLを持つ辞書 ORIGINS = { "starwarsapi.yourdomain.com": "swapi.dev", "google.yourdomain.com": "www.google.com", }
url = URL.new(request.url)
# 受信したホスト名がORIGINSオブジェクトのキーであるか確認 if url.hostname in ORIGINS: url.hostname = ORIGINS[url.hostname] # もしそうであれば、そのサードパーティオリジンにリクエストをプロキシ return fetch(url.toString(), request)
# そうでなければ、リクエストを通常通り処理 return fetch(request)