【发布时间】:2012-03-20 13:55:46
【问题描述】:
我正在尝试构建一个系统,该系统使用 nodejs 和 express 来根据来自另一个后端服务的数据呈现 html 页面。后端服务提供 JSON 数据,nodejs 服务器使用这些数据呈现 html,然后传递给浏览器。阅读了 REST 和 Hyemedia 约束后,我想在设计中使用它,但似乎无法弄清楚。一个简单的示例是一个提供项目列表的页面,其中每个项目都是一个链接,可以单击该链接以获取该项目的完整详细信息。所以后端服务可能会生成一些类似于
的 JSON{
"title": "List of items"
"self": "http://api.hostname.com/items
[
{
"title":"item1",
"url": "http://api.hostname.com/items/1
}
{
"title":"item2",
"url": "http://api.hostname.com/items/2
} {
"title":"item3",
"url": "http://api.hostname.com/items/3
}
}
然后我让 nodejs 在 html 中呈现一个页面,其中包含一个使用“标题”作为名称的链接列表。那么问题是我不知道该使用什么href。如果 href 是一个可以渲染项目的视图,它会起作用
href="/items/2
但我无法将“url”字段传递回节点,因此节点可以将其传递给后端服务。我最终基于视图 url 为后端服务构建了 url。如果我理解 REST 不是超媒体方式的话。这意味着我的节点代码必须知道后端服务的 url 格式,而不是获取 url 并直接使用。
那么有没有像添加“url”字段作为 href 的查询参数以将其保留在客户端的如此聪明的功能?我误解了超媒体约束还是应该尝试使用它?
【问题讨论】:
标签: html http rest node.js service