如果我要把Gemini API 到Cloudflare Workers转发,代码应该怎么写?

ChatGPT

要将请求从 Cloudflare Workers 转发到 Gemini API,您可以编写一个反向代理的代码。这个代理会拦截到 Cloudflare Workers 的请求,并将它们转发到 Gemini API。下面是一个基本的示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
javascriptCopy codeexport default {
async fetch(request, env) {
// 解析原始请求的 URL
const url = new URL(request.url);

// 设置目标 Gemini API 的域名
url.host = 'your-gemini-api-domain.com';

// 如果需要,可以修改路径、查询参数等
// 例如: url.pathname = '/api/some-path';

// 创建新的请求对象,并将原始请求的所有信息传递给它
const newRequest = new Request(url.toString(), request);

// 如果 Gemini API 需要特定的认证或头信息,可以在这里添加
// 例如: newRequest.headers.set('Authorization', 'Bearer YOUR_API_TOKEN');

// 发送请求到 Gemini API 并返回响应
return fetch(newRequest);
}
}

这段代码做了以下事情:

  1. 解析请求 URL:获取传入到 Worker 的原始请求的 URL。
  2. 修改请求的目标:将请求的 host 属性更改为 Gemini API 的域名。
  3. 创建新的请求对象:使用修改后的 URL 和原始请求的其他属性(如方法、头信息等)创建一个新的 Request 对象。
  4. 添加认证和头信息(如果需要):如果 Gemini API 需要特定的认证或者其他头信息,您可以在这里设置。
  5. 转发请求:使用 fetch 函数将修改后的请求发送到 Gemini API,并将响应返回给原始请求者。

请确保根据您的实际情况替换 'your-gemini-api-domain.com' 和其他必要的信息。如果您的 API 需要特殊的路径或查询参数,也需要在代码中相应地进行调整。