我目前正在尝试使用 Node.js 为我的 Web 应用程序创建一个 api。该 api 旨在将 JSON 数据返回给 api 用户。
例如,我有以下端点/对象: - 文章(文章集合) - 文章(单篇文章,每篇文章都有标签) - 标签
每个拥有自己的 json 数据格式的端点/对象都需要返回,例如:
文章:[{articleObject}、{articleObject}、{articleObject}]
文章
{ id: 12, title: '我的精彩文章*我说过而且我知道', content: 'blah blah blah blah', 标签: [{tagObject}, {tagObject}, {tagObject}] }
每个端点都可以调用其他端点来获取所需的数据,例如:文章端点可以调用标签端点来获取文章标签集合,标签端点将返回数组对象。
我的问题:
如何管理对象结构,所以如果一个端点从另一个端点调用它将返回数组/对象,而当从 api 用户调用时它将返回 JSON 字符串。
我应该为每个端点创建对象模板。该过程将是:
- 端点将调用对象模板;
- 对象模板将从数据库中获取数据;
- 当从其他端点调用时,端点将返回对象模板;
- Endpoint 将调用模板引擎将对象模板解析为 api 用户的 JSON 字符串。将为每个端点提供 JSON 字符串视图。
什么模板引擎可以在对象模板下处理并将它们视为变量,在 PHP 中我使用 Twig 可以接收 PHP 对象并将它们视为变量。在这里你可以找到我是如何使用 Twig 做到这一点的
对象模板文件内容示例:
var Tags = require('./tags');
module.exports = function(param){
/* do fetching data from database for specified parameters */
/* here */
var data = {};
return {
id: function() {
return data.id;
},
title: function() {
return data.title;
},
description: function() {
return data.description;
},
tags: function() {
return Tags(data.id);
}
}
}
希望有人能给我指路。