postgreSQL会支持rest API吗?

时间:2015-01-08 05:39:55

标签: java postgresql rest

我想知道PostgreSQL是否支持休息,还是有其他方法可以实现它?

3 个答案:

答案 0 :(得分:8)

另一个尝试解决此问题的项目是PostgREST。它是用Haskell而不是Java编写的,但您可以使用普通的HTTP请求从Java中使用它。

  

PostgREST从任何现有的PostgreSQL提供完全RESTful的API   数据库。它提供了更清晰,更符合标准,更快的API   你可能会从头开始写作。

答案 1 :(得分:2)

Postgres不支持开箱即用的REST界面。但是有一个关于添加一个的早期草案:Postgres Wiki因此Postgres可能会在未来的版本中添加一个。 有一些"实验"在Github上:link

目前有两种可行的解决方案:

  1. 使用第三方工具,为postgres提供rest api。 restsql就是一个例子。

  2. 实施您自己的Web服务层。

  3. 这取决于您的要求:

    (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等。