From fdfc95ef6f293eecb0e4541f0192c1079ff1d217 Mon Sep 17 00:00:00 2001 From: D8D Developer Date: Fri, 20 Mar 2026 15:13:11 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A0=87=E5=87=86=E5=8C=96=20API=20?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Claude API 路由从 /v1/* 改为 /claude/* - OpenAI API 路由从 /openai/v1/* 改为 /openai/* - 更清晰的端点命名,便于区分不同提供商 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- src/index.ts | 8 ++++---- src/proxy-openai.ts | 2 +- src/proxy.ts | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/index.ts b/src/index.ts index c07e067..b220fad 100644 --- a/src/index.ts +++ b/src/index.ts @@ -13,11 +13,11 @@ app.use(express.json({ limit: '50mb' })); // 健康检查端点 app.get('/health', healthHandler); -// Claude API 代理路由: /v1/* -app.all('/v1/*', proxyHandler); +// Claude API 代理路由: /claude/* +app.all('/claude/*', proxyHandler); -// OpenAI API 代理路由: /openai/v1/* -app.all('/openai/v1/*', openaiProxyHandler); +// OpenAI API 代理路由: /openai/* +app.all('/openai/*', openaiProxyHandler); // 启动服务器 const server = app.listen(PORT, () => { diff --git a/src/proxy-openai.ts b/src/proxy-openai.ts index 6640fc5..2757e5e 100644 --- a/src/proxy-openai.ts +++ b/src/proxy-openai.ts @@ -32,7 +32,7 @@ function extractProxyHeaders(req: Request): Record { export async function openaiProxyHandler(req: Request, res: Response): Promise { const startTime = Date.now(); const method = req.method; - // 移除 /openai 前缀,保留 /v1/... 路径 + // 移除 /openai 前缀,保留完整路径(如 /v1/chat/completions) const requestPath = req.path.replace(/^\/openai/, ''); const baseUrl = getOpenAIBaseUrl(); const targetUrl = `${baseUrl}${requestPath}`; diff --git a/src/proxy.ts b/src/proxy.ts index d4c20b0..955ca45 100644 --- a/src/proxy.ts +++ b/src/proxy.ts @@ -32,7 +32,8 @@ function extractProxyHeaders(req: Request): Record { export async function proxyHandler(req: Request, res: Response): Promise { const startTime = Date.now(); const method = req.method; - const requestPath = req.path; + // 移除 /claude 前缀,保留完整路径(如 /v1/messages) + const requestPath = req.path.replace(/^\/claude/, ''); const baseUrl = getBaseUrl(); const targetUrl = `${baseUrl}${requestPath}`;