我想知道PostgreSQL是否支持休息,还是有其他方法可以实现它?
答案 0 :(得分:8)
另一个尝试解决此问题的项目是PostgREST。它是用Haskell而不是Java编写的,但您可以使用普通的HTTP请求从Java中使用它。
PostgREST从任何现有的PostgreSQL提供完全RESTful的API 数据库。它提供了更清晰,更符合标准,更快的API 你可能会从头开始写作。
答案 1 :(得分:2)
Postgres不支持开箱即用的REST界面。但是有一个关于添加一个的早期草案:Postgres Wiki因此Postgres可能会在未来的版本中添加一个。 有一些"实验"在Github上:link
目前有两种可行的解决方案:
使用第三方工具,为postgres提供rest api。 restsql就是一个例子。
实施您自己的Web服务层。
这取决于您的要求:
(2)为您提供最大的控制权。您可以按照自己需要的方式设计api。现代Java框架(JPA,JAX-RS,Jackson等)使创建轻量级API层变得相当容易和有效。
如果您只需要通过REST访问数据库的基本方法,那么(1)将是可行的。
答案 2 :(得分:1)
免责声明:我是答案中产品的所有者。
您好,
您可能想要查看https://zenite.io,这是一个支持REST端点的数据库主机平台,用于查询数据库数据。
例如,您可以创建API端点def function(a, b, c):
# Give error messages
if b.lower() not in a.lower():
print("Cannot be found:", repr(b))
if c.lower() not in a.lower():
print("Cannot be found:", repr(c))
a = a.split(" ") # separates the words along spaces
output = []
for word in a:
if word.lower() == b.lower(): # is the word b?
output.append(c) # add c
elif word.lower() == c.lower(): # is the word c?
output.append(b) # add b
else: # the word is neither a nor b
output.append(word) # leave the word unchanged
return " ".join(output)
print(function("Neill and Nathan left the school.", "neill", "nathan"))
print(function("Neill and Nathan left the school.", "Nathan", "neILL"))
print(function("and Bob work together.", "dylan", "bob"))
print(function("Dylan and work together.", "DYLAN", "BoB"))
并在其上定义SQL查询:
/user
然后在数据库服务器上执行GET请求:
SELECT * FROM users WHERE id = $id;
此URL将以JSON格式返回数据:
https://server.zenite.io/user?id=1
支持的技术包括PostgreSQL等。