190c1dc3c8
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
36 lines
1014 B
TypeScript
36 lines
1014 B
TypeScript
import type { NextRequest } from "next/server";
|
|
|
|
const BACKEND_BASE_URL =
|
|
process.env.NEXT_PUBLIC_BACKEND_BASE_URL ?? "http://127.0.0.1:8001";
|
|
|
|
function buildBackendUrl(pathname: string) {
|
|
return new URL(pathname, BACKEND_BASE_URL);
|
|
}
|
|
|
|
async function proxyRequest(request: NextRequest, pathname: string) {
|
|
const headers = new Headers(request.headers);
|
|
headers.delete("host");
|
|
headers.delete("connection");
|
|
headers.delete("content-length");
|
|
|
|
const hasBody = !["GET", "HEAD"].includes(request.method);
|
|
const response = await fetch(buildBackendUrl(pathname), {
|
|
method: request.method,
|
|
headers,
|
|
body: hasBody ? await request.arrayBuffer() : undefined,
|
|
});
|
|
|
|
return new Response(await response.arrayBuffer(), {
|
|
status: response.status,
|
|
headers: response.headers,
|
|
});
|
|
}
|
|
|
|
export async function GET(request: NextRequest) {
|
|
return proxyRequest(request, "/api/v1/memory");
|
|
}
|
|
|
|
export async function DELETE(request: NextRequest) {
|
|
return proxyRequest(request, "/api/v1/memory");
|
|
}
|