JDBC 样式的 URL?
The pg gem 是 Ruby 的主要 PostgreSQL 接口,支持用于指定要连接的数据库的 URL。那是因为它只是 PostgreSQL 的libpq 的一个包装器,而libpq 支持三种指定连接的方式:
host、password 等的单独设置已传递到库;
像dbname=mydb user=fred password=d00rmat host=localhost port=5432 sslmode=require这样的PostgreSQL“连接字符串”;或
JDBC 样式的 URL,例如 jdbc:postgresql://fred:d00rmat@localhost:5432/mydb?sslmode=require
所以你不需要做任何特别的事情。 pg 通过libpq 已经支持它。
Web 服务式查询?
现在,如果您实际上想要查询一个 PostgreSQL 数据库就像一个 Web 服务 API,例如
http://my-postgresql-server/q?query="SELECT * FROM users;"
并得到如下响应:
[
{"id":1, "name":"fred", ...},
...
]
... PostgreSQL 不直接支持。您将需要一个中间层工具来公开 PostgreSQL 的 Web 服务 API 和代理。 非常认真考虑允许客户端应用程序发送任意 SQL 的安全隐患;这通常是一个非常糟糕的设计,您应该编写一个适当的 Web 服务 API,并使用如下请求方法:
http://my-appserver/api/1.0/fetchAllUsers