我有一个用 Java 编写的服务器端 API,它为我的 Web 应用程序提供所有动态数据。我正在用 Ember.js 编写一个新的前端。我想使用 Javascript 创建一个新的后端,该后端使用旧的 API 来处理动态数据。基本上是中间件。我有一个很大的 JSON 文件,其中包含每个页面的信息(标题、描述、从中获取动态数据的 URL 等)。
website: {
tab1: {
title: "Tab 1",
pages: [
page1: {
title: "Page 1",
description: "Description 1",
url: "url containing data"
},
page2: {
title: "Page 2",
description: "Description 2",
url: "url containing data"
}
]
},
tab2: {
title: "Tab 1",
pages: [
page1: {
title: "Page 1",
description: "Description 1",
url: "url containing data"
},
page2: {
title: "Page 2",
description: "Description 2",
url: "url containing data"
}
]
}
}
当我向 http://server/
发出请求时,我希望收到 ["Tab 1", "Tab 2"]
。
当我向 http://server/tab1
发出请求时,我希望收到 ["Page1", "Page 2"]
。
当我向 http://server/tab1/page1
发出请求时,我想接收 {title: "Page 1", description: "Description 1", data: {来自 URL 的数据已处理为 JSON}}
。
哪种服务器端框架最适合这个?没有数据库,也没有更改 JSON 文件。有对 API 的更新/创建请求,但中间件只会更改请求的格式并将其传递给旧 API。我希望有一天能够扩展中间件 API 以完全取代旧的 API,所以我想要一个框架,而不是自己编写所有内容,因为以后框架会更容易。我从未使用过 REST API 框架,因此非常感谢任何见解。
最佳答案
您可以使用 Express 轻松实现此目的通过定义您需要的路线。
一种方法是在 Express 启动时加载 JSON 文件,并使用路由参数从 JSON 中动态获取所需的片段。如果 JSON 很大并且内存无法容纳,那么我会使用 DB。但你说的 100 页看起来并不多
然后,在路由处理程序中,您将根据路由参数过滤 JSON 对象。例如:
app.get('/:tab/:subtab/:page/:resource/:etc', function(request, response, next) {
var tab = request.params.tab;
var page = request.params.page;
// Write a filter() function that extract JSON using tab and page...
var json = filter(tab, page);
return response.send(json);
});
以下是快速路由指南:
http://expressjs.com/guide/routing.html
关于javascript - Node API框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33448129/