跳轉到主要內容

概述

資料庫 API 為你的資料庫資料表提供 PostgREST 風格的 CRUD 操作。所有請求都需要身分驗證標頭。

標頭


查詢記錄

從資料表中擷取記錄,支援過濾、排序與分頁。

查詢參數

參數類型說明
limitinteger回傳的最大記錄數(1-1000,預設值:100)
offsetinteger分頁時要跳過的記錄數(預設值:0)
orderstring排序方式(例如 createdAt.descname.asc
selectstring要回傳的欄位,以逗號分隔
{field}stringPostgREST 過濾條件(例如 status=eq.active

過濾運算子

運算子說明範例
eq等於status=eq.active
neq不等於status=neq.deleted
gt大於age=gt.18
gte大於或等於price=gte.100
lt小於quantity=lt.10
lte小於或等於score=lte.50
like模式比對(區分大小寫)name=like.*john*
ilike模式比對(不區分大小寫)email=ilike.*@gmail.com
in在清單中status=in.(active,pending)
is是否為 null/true/falsedeleted_at=is.null

範例

回應

回應標頭

標頭說明
X-Total-Count符合查詢條件的總記錄數
Content-Range回傳的記錄範圍(例如 0-99/1234

建立記錄

在資料表中建立一筆或多筆記錄。
重要提示:請求主體必須是陣列,即使只建立單筆記錄也是如此。

標頭

標頭說明
Preferreturn=representation加入此項以回傳已建立的記錄

範例

回應

不含 Prefer 標頭時:
Prefer: return=representation 時:

更新記錄

更新符合查詢過濾條件的記錄。

查詢參數

使用過濾運算子指定要更新的記錄。

標頭

標頭說明
Preferreturn=representation加入此項以回傳已更新的記錄

範例

回應


刪除記錄

刪除符合查詢過濾條件的記錄。

查詢參數

使用過濾運算子指定要刪除的記錄。

標頭

標頭說明
Preferreturn=representation加入此項以回傳已刪除的記錄

範例

回應

不含 Prefer 標頭時:204 No Content Prefer: return=representation 時:

錯誤回應

找不到資料表 (404)

無效查詢 (400)

驗證錯誤 (400)


範例

分頁

複雜過濾條件

Upsert(插入或更新)

插入一筆記錄,若與唯一約束發生衝突則更新該記錄。

標頭

標頭說明
Preferresolution=merge-duplicates發生衝突時更新現有記錄
Preferresolution=ignore-duplicates記錄已存在時忽略插入

範例

回應

Upsert 需要資料表上存在唯一約束(例如主鍵或唯一索引)。衝突解決方式將依此約束而定。

呼叫 RPC 函式

透過 PostgREST RPC 執行資料庫函式。支援所有 HTTP 方法(GET、POST、PUT、PATCH、DELETE)。

範例

回應


管理員端點

以下端點需要管理員身分驗證。

管理員端點的標頭


列出資料庫函式

取得 public 結構描述下的所有資料庫函式。需要管理員身分驗證。

範例

回應


列出資料庫索引

取得所有資料庫索引。需要管理員身分驗證。

範例

回應


列出 RLS 政策

取得所有資料列層級安全性(Row Level Security)政策。需要管理員身分驗證。

範例

回應


列出資料庫觸發器

取得所有資料庫觸發器。需要管理員身分驗證。

範例

回應


列出資料庫遷移

取得已成功執行的自訂遷移歷史記錄。InsForge 會將這些記錄儲存在 system.custom_migrations 中,但此端點僅回傳遷移的中繼資料與已執行的陳述式。需要管理員身分驗證。

範例

回應


建立資料庫遷移

建立並立即對資料庫執行一次自訂遷移。只有當每一條陳述式都執行成功時,此遷移才會被記錄。需要管理員身分驗證。

請求主體

欄位類型是否必填說明
versionstring數字形式的遷移版本號(最多 64 位)。可以是 Drizzle 風格的循序前綴(例如 0001),也可以是 YYYYMMDDHHmmss 格式的時間戳記。版本號依數字大小比較。InsForge CLI 會為本機遷移檔名產生 14 位的 UTC 時間戳記。
namestring遷移名稱,僅能使用小寫字母、數字和連字號
sqlstring要剖析並執行的 SQL 文字

範例

回應

請勿在自訂遷移中包含 BEGINCOMMITROLLBACK。InsForge 會在自己的交易中執行此遷移。

執行原始 SQL(嚴格模式)

以嚴格清理規則執行原始 SQL 查詢。禁止存取系統資料表和 auth.users。需要管理員身分驗證。

請求主體

欄位類型是否必填說明
querystring要執行的 SQL 查詢
paramsarray用於參數化查詢的查詢參數

範例

回應


執行原始 SQL(寬鬆模式)

以寬鬆清理規則執行原始 SQL 查詢。允許對系統資料表執行 SELECT 與 INSERT。請謹慎使用。需要管理員身分驗證。

請求主體

欄位類型是否必填說明
querystring要執行的 SQL 查詢
paramsarray用於參數化查詢的查詢參數

範例

回應

此端點的限制較為寬鬆,可以存取系統資料表。請僅在必要時使用,並確保具備適當的授權。

匯出資料庫

以 SQL 或 JSON 格式匯出資料庫結構描述和/或資料。需要管理員身分驗證。

請求主體

欄位類型是否必填預設值說明
tablesarrayall要匯出的資料表清單
formatstringsql匯出格式(sqljson
includeDatabooleantrue包含資料表資料
includeFunctionsbooleanfalse包含資料庫函式
includeSequencesbooleanfalse包含序列
includeViewsbooleanfalse包含檢視表
rowLimitinteger-每個資料表的最大列數

範例

回應


匯入資料庫

從 SQL 檔案匯入資料庫。需要管理員身分驗證。

請求(multipart/form-data)

欄位類型是否必填預設值說明
filefile-要匯入的 SQL 檔案
truncatebooleanfalse匯入前清空既有資料表

範例

回應


批次插入或更新

從 CSV 或 JSON 檔案批次插入或更新資料。需要管理員身分驗證。

請求(multipart/form-data)

欄位類型是否必填說明
filefile包含資料的 CSV 或 JSON 檔案
tablestring目標資料表名稱
upsertKeystring用於衝突解決的欄位名稱

範例

回應