コンテンツにスキップ

ルートと CRUD

ルート は API のエントリーポイントです。リソースごとにまとめられ、手作業で 記述することも、モデルから 生成 することもできます。

ルートセクション:モデルから生成された CRUD ルートのグループ。メソッド、パス、レスポンスが表示される

ルートは メソッド、パス、パラメーター、レスポンス を持ちます。 パスは Restorm の {{param}} 構文を使います。パスに {{id}} と入力するとすぐに 対応するパラメーターが表示され、削除すると消えます。

ルートの 定義 タブには、そのパラメーターが一覧表示されます — パス パラメーター({{param}} プレースホルダーから作成)と、パラメーターを追加 で 追加する クエリ / ヘッダー パラメーター。それぞれが名前、位置(in)、 必須 かどうか、説明、そして任意で 例 を持ちます。

型 セルはコンボです。プリミティブ(string、integer、number、boolean) か、設計の 名前付き enum のいずれかをワンクリックで選びます。より複雑な場合は Advanced… を選ぶと小さなダイアログが開き、そこで次のことができます。

  • パラメーターを 配列 にして、その 要素の型(array<string> など)を選ぶ — 複数値のクエリパラメーター。
  • 名前付き enum で型付けされていない場合に、インラインの列挙値(許可される 集合。チップとして表示)を付与する。
  • 名前付き enum に抽出 — これらのインライン値を共有 enum に昇格させる(モデル と enum を参照)。

パラメーターは モデルのプロパティにリンク(モデルリンク 列)してその型を 継承したり、非推奨 としてマークしたりもできます。各パラメーター — その型、 enum、非推奨 — は、生成されるドキュメントとすべてのプロトコル投影に反映されます。

モデルの設定から CRUD を生成 すると、モデルの複数形にちなんで名付けられた ルートグループがワンクリックで作成され、6 つのルートが含まれます。

ルートメソッドとパスレスポンス
一覧GET /(ページネーション付き)200
取得GET /{{id}}200 · 404
作成POST /201
置換PUT /{{id}}200 · 404
更新PATCH /{{id}}200 · 404
削除DELETE /{{id}}204 · 404

一覧は ページネーション されます(オフセット方式、デフォルト 20 件、最大 100 件)。各 {{id}} は自動的に モデルの識別子に結び付けられます。

CRUD を生成 ダイアログには 2 つのオプションがあります。

  • 既存のルートを置き換える — 再生成する場合の重複を避けるため。
  • 書き込みルートを認証で保護する — 作成、置換、更新、削除がトークン (bearer)を要求するようになり、読み取りは公開のままです。

このダイアログは、CRUD が 各プロトコルで提供される ことも示します:REST ルート、GraphQL のクエリとミューテーション、gRPC メソッド、OData エンティティ セット、SOAP オペレーション(設計をモックとして提供する を参照)。

searchable とマークされた各プロパティについて、検索ルートを生成 は モデルの一覧ルートに結び付けられたクエリパラメーターを追加します(そのルートが まだ存在しない場合は作成します)。

認証は 3 つのレベルで設定します:設計のデフォルト値、グループごとの 認証必須、 ルートごとの オーバーライド(グループのデフォルトを継承)。利用できるモードは なし、Bearer(JWT)、API キー(ヘッダー)、Basic です。

タグ は、ドキュメントと OpenAPI エクスポートのためにルートをまとめます。タグ は 2 つのレベルに存在します。ルートは 自身の タグ(その 定義 タブ)を持ち、 グループは保持するすべてのルートに適用される 共有 タグ(その設定)を持ちます。 ルートの実効タグはこの両方の 和集合 です — したがって、グループ全体に共通する タグは、グループに一度だけ設定するのが最善です。インポートした API を設計に変換 する際、グループのすべてのルートで共有されているタグは自動的にグループへ引き上げ られます。

ルートは(プロパティやパラメーターと同様に)その 設定 から 非推奨 として マークできます。非推奨のルートは、ルート一覧と生成されたクライアントで 淡色 で 表示され、そのタブに非推奨の注意書きが付きます。このフラグはすべてのプロトコル 投影に伝播します — OpenAPI の deprecated、GraphQL の @deprecated ディレクティブ、 SOAP と gRPC のディスクリプター、OData のメタデータ — そのため、提供されるどの プロトコルの利用者もこれを目にします。