如何在Next.js 13.2新Route Handlers中传递参数调用Twelve Data API?
解决Next.js API获取Twelve Data股票历史数据的参数传递问题
核心问题梳理
- GET请求参数获取方式错误:你当前用
request.body读取参数,但GET请求的参数是存放在URL查询字符串中的,并非请求体里。 - 测试URL格式错误:你输入的测试地址里
endDate参数缺失键名,正确写法应该是endDate=2021-01-01,而非直接写2021-01-01。
修正后的代码
export async function GET(request) { // 从URL查询字符串中提取参数 const { searchParams } = new URL(request.url); const symbol = searchParams.get('symbol'); const startDate = searchParams.get('startDate'); const endDate = searchParams.get('endDate'); const apiKey = process.env.TWELVE_DATA_API_KEY; const url = `https://api.twelvedata.com/time_series?symbol=${symbol}&interval=1day&start_date=${startDate}&end_date=${endDate}&apikey=${apiKey}`; const res = await fetch(url); const data = await res.json(); return Response.json({ data }); }
正确的测试URL
http://localhost:3000/api/stock-info?symbol=AAPL&startDate=2020-01-01&endDate=2021-01-01
额外建议
可以添加参数校验逻辑,比如检查symbol、startDate、endDate是否存在,避免因参数缺失导致Twelve Data API请求失败。
内容的提问来源于stack exchange,提问作者adooze
相关产品推荐
相关产品推荐

