注意

此页面正在建设中。

URL 语法

自定义查询

PostgREST URL 语法限制了客户端可以执行的查询类型。它阻止了任意、可能构建不良且速度慢的客户端查询。这对服务质量有利,但意味着数据库管理员必须创建自定义视图和函数来提供更丰富的端点。自定义端点的最常见原因是

  • 表联合

  • 资源嵌入 提供的更复杂的联接。

  • 需要参数的地理空间查询,例如“靠近 (lat,lon) 的点”

Unicode 支持

PostgREST 支持模式、表、列和值中的 Unicode。要访问具有 Unicode 名称的表,请使用百分比编码。

要请求此

GET /موارد HTTP/1.1

请执行此操作

curl "https://#:3000/%D9%85%D9%88%D8%A7%D8%B1%D8%AF"

包含空格的表/列

您可以通过使用 %20 对空格进行百分比编码来请求包含空格的表/列。

curl "https://#:3000/Order%20Items?Unit%20Price=lt.200"

保留字符

如果过滤器包含 PostgREST 保留字符(,.:()),则需要将它们用百分比编码的双引号 %22 括起来,以便正确处理。

这里 Hebdon,JohnWilliams,Mary 是值。

curl "https://#:3000/employees?name=in.(%22Hebdon,John%22,%22Williams,Mary%22)"

这里 information.cpe 是一个列名。

curl "https://#:3000/vulnerabilities?%22information.cpe%22=like.*MS*"

如果使用 in 运算符过滤的值包含双引号 ("),可以使用反斜杠 "\"" 进行转义。反斜杠本身可以使用双反斜杠 "\\" 进行转义。

这里 Quote:"Backslash:\ 是百分比编码的值。请注意,%5C 是百分比编码的反斜杠。

curl "https://#:3000/marks?name=in.(%22Quote:%5C%22%22,%22Backslash:%5C%5C%22)"

注意

一些 HTTP 库可能会自动对 URL 进行编码(例如 axios)。在这些情况下,您应该直接使用双引号 "" 而不是 %22