跳到內容

路由與 CRUD

路由 是您的 API 的進入點。它們按資源分組,您可以手動編寫,也可以從模型 生成。

路由區段:從模型生成的一組 CRUD 路由,帶有方法、路徑和回應

一個路由帶有一個 方法、一個 路徑、若干 參數 和若干 回應。路徑 使用 Restorm 的 {{param}} 語法:一旦您在路徑中輸入 {{id}},對應的參數就會 出現;移除它就會刪除該參數。

一個路由的 定義 分頁列出它的參數 —— 路徑 參數(從 {{param}} 佔位符 建立)以及您用 新增參數 新增的 查詢 / 標頭 參數。每個參數都帶有一個 名稱、一個位置(in)、是否 必填、一個描述,以及選擇性的一個 範例。

類型 儲存格是一個組合方塊:一鍵選擇一個原始類型(string、integer、number、 boolean),或設計的某個 具名列舉。對於更複雜的情形,選擇 Advanced… 開啟 一個小對話框,您可以在其中:

  • 讓參數成為一個 陣列 並選擇它的 元素類型(array<string>、……)—— 一個 多值查詢參數;
  • 在它未被具名列舉定型時,為它賦予 內嵌列舉值(允許的集合,以 chip 形式列出);
  • 擷取為具名列舉 —— 將這些內嵌值提升為一個共用列舉(參見模型與列舉)。

一個參數還可以 關聯到一個模型屬性(模型連結 欄),從而繼承其類型,或被標記為 已棄用。每個參數 —— 它的類型、它的列舉、它的棄用狀態 —— 都會進入所生成的文件以及 每一種協定投影。

從一個模型的設定中,生成 CRUD 一鍵建立一個以模型複數命名的路由群組,包含六個 路由:

路由方法與路徑回應
列出GET /(分頁)200
取得GET /{{id}}200 · 404
建立POST /201
替換PUT /{{id}}200 · 404
更新PATCH /{{id}}200 · 404
刪除DELETE /{{id}}204 · 404

清單是 分頁的(偏移/offset,預設 20 項,最多 100 項)。每個 {{id}} 都會 自動 關聯到模型的識別碼。

生成 CRUD 對話框提供兩個選項:

  • 替換現有路由 —— 在您重新生成時避免重複。
  • 用認證保護寫入路由 —— 於是建立、替換、更新和刪除要求一個權杖(bearer), 而讀取保持公開。

它還提醒您,CRUD 會 在每個協定中 提供服務:REST 路由、GraphQL 查詢與變更、 gRPC 方法、OData 實體集和 SOAP 操作(參見將設計作為 mock 提供服務)。

對於每個標記為 searchable 的屬性,生成搜尋路由 會新增一個關聯到模型 清單路由的查詢參數(如果該路由尚不存在,則建立它)。

認證在三個層級設定:設計的一個預設值、每個群組的 需要認證,以及每個路由的 覆寫(它繼承群組的預設值)。可用的模式有 無、Bearer(JWT)、API 金鑰 (標頭) 和 Basic。

標籤 為文件和 OpenAPI 匯出將路由分組。它們存在於兩個層級:一個路由帶有它 自己的 標籤(它的 定義 分頁),而一個群組帶有 共用 標籤(它的設定), 套用於它所包含的每個路由。一個路由的有效標籤是二者的 聯集 —— 因此,對整個群組 共有的標籤,最好只在群組上設定一次。當您把一個匯入的 API 轉換為設計時,一個被某個 群組的每個路由共用的標籤會被自動上移到該群組。

一個路由(如同一個屬性或一個參數)可以從它的 設定 中被標記為 已棄用。一個 已棄用的路由在路由清單和所生成的用戶端中顯示為 淡化,並在它的分頁上帶有一則 棄用提示。該旗標會傳播到每一種協定投影 —— OpenAPI 的 deprecated、GraphQL 的 @deprecated 指令、SOAP 和 gRPC 描述元,以及 OData 中繼資料 —— 從而讓任何所提供 協定的使用者都能看到它。