【发布时间】:2012-09-26 04:58:06
【问题描述】:
我目前正在尝试使用 Node.js 为我的网络应用程序创建一个 api。该api旨在将JSON数据返回给api用户。
例如,我有以下端点/对象: - 文章(文章集) - 文章(单篇文章,每篇文章都有标签) - 标签
每个端点/对象都有自己的json数据格式需要返回,例如:
文章:[{articleObject}、{articleObject}、{articleObject}]
-
文章
{ 编号:12, 标题:'我的精彩文章*我说过,我知道', 内容:'废话废话', 标签:[{tagObject}, {tagObject}, {tagObject}] }
每个端点都可以调用其他端点来获取所需的数据,例如: 文章端点可以调用标签端点来获取文章标签集合,标签端点将返回数组对象。
我的问题:
如何管理 Object 结构,所以如果一个端点从另一个端点调用它会返回 Array / Object,而当从 api 用户调用时它会返回 JSON 字符串。
-
我应该为每个端点创建对象模板吗?该过程将是:
- 端点将调用对象模板;
- 对象模板将从数据库中获取数据;
- 从其他端点调用时,端点将返回对象模板;
- Endpoint 将调用模板引擎将对象模板解析为 api 用户的 JSON 字符串。将为每个端点提供 JSON 字符串视图。
什么模板引擎可以在对象模板下处理并将它们视为变量,在 PHP 中我使用 Twig 可以接收 PHP 对象并将它们视为变量。 Here you can find how i do that using 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);
}
}
}
希望有人能给我指路。
【问题讨论】:
标签: api node.js architecture