// 你的后端 API 密钥,请确保将其存储在 .env.local 文件中 const BACKEND_API_KEY = 'NYTOohHPXUaRye4VylNYLyOBTCzwb1tDPt82fXT9'; import { NextResponse } from 'next/server'; export async function POST(request: Request) { try { // 从客户端请求中获取 JSON 数据 const requestBody = await request.json(); // 检查请求的 hostname 是否为本地地址 (localhost 或 127.0.0.1) if (requestBody?.target?.includes('localhost') || requestBody?.target?.includes('127.0.0.1')) { console.log('Request is from localhost, returning self.'); // 如果是本地请求,直接返回一个响应,不做转发 return NextResponse.json({ link: requestBody.target, }); } // 将客户端请求的 JSON 数据转发到真正的后端 API const backendResponse = await fetch('https://url.airoport.co/api/v2/links', { method: 'POST', headers: { 'Content-Type': 'application/json', // 🚨 在这里使用你的后端 API 密钥,它只在服务器端运行,非常安全 'x-api-key': BACKEND_API_KEY, }, body: JSON.stringify({ reuse: true, ...requestBody, }), }); // 检查后端响应状态 if (!backendResponse.ok) { // 转发后端 API 的错误响应 const errorData = await backendResponse.json(); return Response.json(errorData, { status: backendResponse.status }); } const backendData = await backendResponse.json(); // 将后端 API 的响应转发给前端 return Response.json(backendData); } catch (error) { console.error('Proxy API Error:', error); return Response.json({ error: 'Internal server error' }, { status: 500 }); } }