节点API框架

Node API Framework

本文关键字:框架 API 节点      更新时间:2023-09-26

我有一个用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: {DATA FROM URL PROCESSED INTO JSON}}

什么服务器端框架最适合这种情况?没有数据库,也没有更改JSON文件。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);
});

以下是Express路由指南:
http://expressjs.com/guide/routing.html