我要通过API公开的文件中包含数据(JSON)。我在构建时就知道数据,但是我不知道如何创建静态API路由,甚至不知道如何通过API路由来静态公开文件。
我为此搜索了两种解决方案:
我的最后一招是尝试通过/pages/api/[something].js上的函数访问文件,但这是动态的而不是静态的。
/pages/api/hello.js文件夹中默认提供的动态功能:
export default (req, res) => {
res.statusCode = 200;
res.json({ name: "John Doe" });
};
这里的典型策略是什么?我觉得我缺少什么。
答案 0 :(得分:1)
Use the pages/api/[something] to generate the API (but it seems to always be dynamic).
不,它不是动态的。从 [something].js
中,如果您导出 getStaticPath(这将为您生成静态路由)和 getStaticProps(这将从相应的路由中注入要提供的数据), next build
将生成您的静态文件,并准备好用作带有原始 json 数据的 api 页面。
希望这就是您想要解决的问题。
答案 1 :(得分:0)
FWIW,这是我发现动态生成API的动态方式:
// on file /pages/api/[article].js
import { getArticle } from "../../lib/api";
export default (req, res) => {
// It gets an article from a file, also can be used with getStaticProps
const article = getPost({article: req.article});
res.statusCode = 200;
// returns the JSON.
res.json(article);
}
我仍然希望它是静态的,不需要运行任何无服务器功能。