问题标签 [postgrest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2601 浏览

nginx - 如何将 Nginx GET 请求重写为 POST?

我的用例是我有一封包含“验证您的电子邮件地址”链接的电子邮件。当用户单击此链接时,用户代理会执行 GET 请求,例如:

服务器将作为 POST 执行此操作(因为它是一个副作用操作)。我根本无法访问服务器代码。目标请求应该是:

我可以执行什么 Nginx 重写来实现这一目标?

编辑:上下文中的解决方案

这将所有这些一起完成:

  • 将请求从 GET 转换为 POST
  • 将位置从 重写/confirm_email/rpc/verify
  • 从请求中删除查询字符串(例如,结果 url 是简单/rpc/verify的,没有?challenge=LSXGMRUQMEBO
  • 添加 JSON 正文:{ "challenge": "LSXGMRUQMEBO" }

感谢 Ivan 让我走上正轨!

0 投票
1 回答
1727 浏览

postgrest - PostgREST 查询的 curl 语法

对 Postgres 11 数据库使用 PostgREST ( http://postgrest.org/en/v5.2/api.html ) 5.2 版,使用以下 curl 命令:

在 Postgres 日志中生成以下跟踪:

原始查询中 workorderid=eq.0001 的“限制”被删除,因此返回的数据包括所有“SunnySide”匹配项,而不是所需的单个 0001 workorderid。

curl 中此命令的正确语法是什么,以便将 workorderid 也传递给 Postgres 服务器?

0 投票
3 回答
5471 浏览

postgresql - PostgREST / PostgreSQL 无法扩大字符串缓冲区消息

我在运行的 postgREST API 上遇到了无法放大字符串缓冲区的消息。我猜有些表太大而无法成功使用 API。

我正在使用来自https://hub.docker.com/r/postgrest/postgrest的 docker postgrest/postgrest 容器 ,其版本为 PostgREST 5.1.0。

一切都按预期工作,但如果表格太大,我会收到以下错误消息。

我无法确定阈值何时工作。是否有可能在某些配置文件中扩大字符串缓冲区或者这是硬编码的?

使用 API 的表大小是否有任何限制。到目前为止,我在文档中找不到任何信息。

=========== 更新

postgres 日志给了我以下 SQL 查询:

我使用以下 postgres 版本:

0 投票
1 回答
81 浏览

postgrest - 使用 JSON 的 Postgrest OR 查询

我有一个使用 postgrest 进行的 json 查询,我需要接受 2 个场景。

该值必须等于“故障转移”或为空(不存在)。

如果不涉及 JSON,这将是一个简单的or=(device_type.eq.failover,device_type.is.null)

但是...对于我的一生,我无法使用 OR 和 JSON 进行查询以协同工作...

event->labels->>device_type=eq.failover

这适用于第一种情况。

event->labels->>device_type=is.null

适用于第二种情况。但是我如何将它们组合成一个 OR 语句?

我试过了:

or=(event->labels->>device_type=is.null,event->labels->>device_type=eq.failover)

event->labels->>device_type=or(eq.failover,is.null)

event->labels->>device_type.or=(eq.failover,is.null)

但是所有这些都只返回一个 400 bad request 错误......

知道如何在 postgrest 中将 JSON 匹配与 OR 语句结合起来吗?

0 投票
1 回答
92 浏览

postgresql - 有没有办法使用 postgREST 获取表元数据

我需要使用 PostgRest 获取表元数据,如主键、列类型等。通过执行我的 PostgRest 应用程序的根路径/,我得到了包含definitions对象中所有需要的数据的 JSON。

不幸的是,没有端点可以获取它,文档中也没有关于它的信息。

我试图执行以下端点: /table/parameters /table/definitions /table/schema

全部返回404错误代码。

有没有办法获取元数据?

0 投票
0 回答
82 浏览

postgrest - postgrest `stack test` 给出:致命:数据库“test/create_test_db”postgres://postgres:pwd@database-host“tes”不存在

stack test给出错误:

我在 Windows10 上,并设置了系统环境变量 POSTGREST_TEST_CONNECTION:

psql在终端给出

0 投票
2 回答
769 浏览

postgrest - 在 postgREST 中使用 group by

我是 Postgres 和 postgREST 的新手。我需要从一列接收不同的记录 - 理想情况下可以过滤。

我需要解决的任务是 SQL

select distinct "column1" where "column2" = "value2 and "column3" = "value3"

column1、column2、colum3 和 values 应该是 REST 调用的参数。

在 postgREST 中,我可能需要使用函数或存储过程,但我对此并不陌生。

你能帮忙吗?

0 投票
3 回答
1810 浏览

postgresql - 如何将 DB_URI postgres DB 连接字符串指定到在 Google Sql 云中运行的实例?

这是我的场景。我已经设置了一个在 Google SQL 云中运行的 Postgres DB 实例。它已启动并正在运行,如果我将本地 IP 列入白名单,我可以直接连接而不会出现问题。

然后我部署了一个 docker 容器(postGrest),它是一个连接到 postgres 数据库的 Web 服务器。当我在 Google Cloud Run 上配置它时,它确实有一个下拉选项,我可以在其中指定数据库连接,它说,在幕后,它为此连接配置 Cloud SQL 代理。

容器允许传入环境变量以指定哪个服务器等。一个必需的参数是 postgred 实例的 DB_URI。在本地运行时,它看起来像这样:

postgres://authenticator:mysecretpassword@localhost:5432/testdb

当我尝试在云版本上配置它时,我尝试使用 IP 127.0.0.1(谷歌云 SQL 代理文档说这是您通过代理连接的方式)。这没有用。

然后我尝试使用分配给 postgres 数据库的公共 IP ......这也不起作用。

有谁知道如何使用这种 DB_URI 格式指定正确的连接字符串?

0 投票
1 回答
297 浏览

azure - 我们可以在 Azure 中使用 PostgREST API

我正在使用 Azure 中的 PostgreSQL。我想用 PostgREST API 为 PostgreSQL 数据库实现 API。有可能这样做吗?

提前致谢

0 投票
1 回答
95 浏览

google-cloud-run - 无法让 HTTP PATCH 在 Google Cloud Run 实例上运行

我运行了一个名为 Postgrest 的网络服务器,它在 postgres 数据库之上生成一个 REST API。我在 Google Cloud 中运行它,并且大部分时间都在运行。我需要执行的 HTTP 操作是 POST、GET、DELETE 和 PATCH。

除了 PATCH 之外,一切都正常工作,我用它来更新数据库中的现有值。当我从 curl 命令提示符运行命令时,没有给出错误,但它不起作用。

https://postgrest-q5mmtshbma-uc.a.run.app/notes?noteid=eq.3 -X PATCH -H "授权:Bearer $TOKEN" -H "内容类型:application/json" -d ' {"note" : "更新了!"}'

当我针对本地运行的同一个 postgrest 版本运行它时,一切正常,所以我认为 Google Cloud 运行可能存在问题并且不允许/接受 PATCH 请求?同样,POST、DELETE、GET 一切正常。

任何人都知道这里可能会发生什么?