API 服务器公开允许连接到您的数据的 Web 服务。使用 CData API 服务器的 OData 终结点, 对 node.js 数据执行 CRUD 查询。
CData API 服务器与 ADO.NET 提供程序配对时, 将 postgresql 数据 (或来自120多个其他 ADO.NET 提供程序的数据) 公开为 OData 终结点, 可以使用简单的 HTTP 请求从 node.js 端点查询。本文介绍如何使用 API 服务器在 node.js 中请求 JSON 格式的 PostgreSQL 数据。
设置 API 服务器
按照以下步骤开始生成安全的 PostgreSQL OData 服务:
部署
API 服务器在您自己的服务器上运行。在 Windows 上, 可以使用单机服务器或 IIS 进行部署。在 Java servlet 容器中, 删除 API 服务器 WAR 文件。有关详细信息和操作方法, 请参阅帮助文档。
API 服务器在Microsoft Azure、 Amazon EC2和Heroku上也很容易部署。
连接到 PostgreSQL
在为 postgresql 部署 API 服务器和ADO.NET 提供程序后, 通过单击 “设置” > “连接” 并在 API 服务器中添加新连接, 提供连接到 postgresql 所需的身份验证值和其他连接属性管理控制台。
要连接到 PostgreSQL, 请设置服务器、端口 (默认端口为 5432) 和数据库连接属性, 并设置您希望用于向服务器进行身份验证的用户和密码。如果未指定数据库属性, 则数据提供程序将连接到用户的默认数据库。
然后, 您可以通过单击 “设置” > “资源”, 选择要允许 API 服务器访问的 PostgreSQL 实体。
授权 API 服务器用户
确定要生成的 OData 服务后, 通过单击 “设置” > “用户” 授权用户。API 服务器使用基于不出所料的身份验证, 并支持主要的身份验证方案。访问也可以基于 IP 地址进行限制;默认情况下, 除本地计算机之外的所有 IP 地址都受到限制。您可以对与 SSL 的连接进行身份验证和加密。
使用来自 node.js 的 OData 源
OData 源在 node.js 中很容易工作。您可以使用 node.js 中的 HTTP 客户端从 API 服务器的 OData 终结点请求 JSON 格式的数据。发出请求后, 您可以构造响应的正文并调用 JSON.parse()
函数将其解析为记录。
下面的代码将对订单数据进行经过身份验证的请求。下面的示例 URL 应用了一个简单的筛选器, 它在货主国家列中搜索具有美国值的记录。
var http = require('http');
http.get({
protocol: "http:",
hostname: "MyServer.com",
port: MyPort,
path: "/api.rsc/Orders?$filter=" + encodeURIComponent("ShipCountry eq 'USA'"),
auth: 'MyUser:MyAuthtoken'
},
function(res) {
var body = '';
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
console.log(body);
var jsonData = JSON.parse(body);
});
}).on('error', function(e) {
console.log("Error: ", e);
});