You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Next.js中实现动态API路由返回谷歌表格的JSON数据

Next.js 动态API路由对接Google Sheet实现方案

第一步:调整路由文件配置

要实现/api/[动态参数]的访问路径,你需要把现有的dynamicid.js改名为[dynamicid].js,存放到项目的pages/api目录下,Next.js会自动识别带中括号的文件为动态API路由。

第二步:修改动态路由代码

直接复用你已经写好的getDataFromSheets方法拉取表格数据,根据路径参数匹配对应结果返回即可,完整代码如下:

// pages/api/[dynamicid].js
import { getDataFromSheets } from '../libs/sheets';

export default async function handler(req, res) {
  // 提取路径中的动态参数
  const { dynamicid } = req.query;
  // 拉取Google Sheet全量数据
  const sheetData = await getDataFromSheets();

  // 匹配逻辑二选一,根据你的业务需求调整
  // 方案1:按行索引匹配,比如访问/api/0返回表格第一行数据
  // 注意如果表格第一行是表头,可加sheetData = sheetData.slice(1)去掉表头
  const targetData = sheetData[Number(dynamicid)];

  // 方案2:按title字段匹配,比如访问/api/测试标题返回title为"测试标题"的行
  // const targetData = sheetData.find(item => item.title === dynamicid);

  if (targetData) {
    res.status(200).json(targetData);
  } else {
    res.status(404).json({ message: '未找到对应数据' });
  }
}

补充优化提示

你原有首页index.js的getStaticProps中,sheet.slice(0, sheet.length)的写法是返回全部数据,如果你的表格第一行是表头想要去掉,直接改成sheet.slice(1)即可,逻辑更简洁。

内容的提问来源于stack exchange,提问作者Monu Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:45:02