共用方式為


如何呼叫 REST 端點

資料 API 產生器 (DAB) 提供 RESTful Web API,可讓您從連線的資料庫存取資料表、檢視和預存程序。 每一個公開的資料庫物件都會定義為執行時期配置中的 實體

根據預設,DAB 會將 REST 端點託管在:

https://{base_url}/api/{entity}

備註

所有路徑元件和查詢參數都區分大小寫。

Data API 產生器支援的關鍵字

概念 REST 目標
Projection $select 選擇要傳回的欄位
篩選 $filter 依條件限制資料列
排序 $orderby 定義排序順序
頁面大小 $first 限制每頁的項目
繼續 $after 從最後一頁繼續

基本結構

若要呼叫 REST API,請使用下列模式建構要求:

{HTTP method} https://{base_url}/{rest-path}/{entity}

從實體讀取 book 所有記錄的範例:

GET https://localhost:5001/api/book

回應是 JSON 物件:

{
  "value": [
    { "id": 1, "title": "Dune" },
    { "id": 2, "title": "Foundation" }
  ]
}

備註

根據預設,除非另有設定,否則每個查詢 DAB 最多會傳回 100 個項目 (runtime.pagination.default-page-size)。

查詢類型

每一個 REST 實體都支援集合和單一記錄讀取。

行動 說明
GET /api/{entity} 傳回記錄清單
GET /api/{entity}/{primary-key-column}/{primary-key-value} 依主鍵返回一筆記錄

傳回一筆記錄的範例:

GET /api/book/id/1010

範例回傳多個結果

GET /api/book

篩選結果

使用 $filter query 參數來限制傳回哪些記錄。

GET /api/book?$filter=title eq 'Foundation'

此查詢會傳回標題等於「基礎」的所有書籍。

篩選器可以包含更複雜查詢的邏輯運算子:

GET /api/book?$filter=year ge 1970 or title eq 'Dune'

請參閱 $filter 引數參考,以取得支援的運算子,例如 eqneltleandor

排序結果

$orderby 參數定義記錄的排序方式。

GET /api/book?$orderby=year desc, title asc

這會傳回依year遞減排序的書籍,然後再依title排序。

如需詳細資訊,請參閱 $orderby引數參考

限制結果 {#first 及之後}

$first 參數會限制在一個要求中傳回多少筆記錄。

GET /api/book?$first=5

這會傳回前五本書,依預設依主索引鍵排序。 您也可以使用 $first=-1 來要求設定的頁面大小上限限制。

$first引數參考中了解更多信息。

持續的結果

若要擷取下一頁,請使用上一個回應中的連續標記搭配 $after

GET /api/book?$first=5&$after={continuation-token}

最後一個查詢的結束位置由 $after 標記識別。 如需詳細資訊,請參閱 $after 引數參考

欄位選擇(投影)

用於 $select 控制回應中包含哪些欄位。

GET /api/book?$select=id,title,price

這個指令只會傳回指定的資料行。 如果缺少或無法存取欄位,DAB 會傳回 400 Bad Request

如需詳細資訊,請參閱$select引數參考

修改資料

REST API 也支援建立、更新和刪除作業,視實體許可權而定。

方法 行動
POST 建立新專案
PUT 取代現有項目 (或建立遺失的項目)
PATCH 更新現有項目 (或如果缺少則建立)
DELETE 依主索引鍵移除項目

建立新記錄的範例:

POST /api/book
Content-type: application/json

{
  "id": 2000,
  "title": "Leviathan Wakes"
}

更新現有記錄的範例:

PATCH /api/book/id/2000
Content-type: application/json

{
  "year": 2011,
  "pages": 577
}

刪除記錄的範例:

DELETE /api/book/id/2000