REST API データソース

概要

REST API をデータソースとして接続するために使用します。

インストール

このプラグインは商用プラグインです。詳しい有効化方法については、商用プラグインの有効化ガイドを参照してください。

REST API ソースの追加

プラグインを有効化した後、データソース管理の「Add new」ドロップダウンメニューから「REST API」を選択します。

20240721171420

REST API ソースを設定します。

20240721171507

Collection の追加

RESTful リソースは NocoBase の Collection に対応します。たとえば、Users リソースです。

GET /users
POST /users
GET /users/1
PUT /users/1
DELETE /users/1

NocoBase API でのマッピング設定は次のとおりです。

GET /users:list
POST /users:create
POST /users:get?filterByTk=1
POST /users:update?filterByTk=1
POST /users:destroy?filterByTk=1

NocoBase API の完全な設計仕様については、API ドキュメントを参照してください。

20240716213344

「NocoBase API - Core」セクションを参照してください。

20240716213258

REST API データソースの Collection 設定は次のとおりです。

List

リソース一覧を取得するインターフェースのマッピングを設定します。

20251201162457

Get

リソースの詳細を取得するインターフェースのマッピングを設定します。

20251201162744

Create

リソースを作成するインターフェースのマッピングを設定します。

20251201163000

Update

リソースを更新するインターフェースのマッピングを設定します。 20251201163058

Destroy

リソースを削除するインターフェースのマッピングを設定します。

20251201163204

List と Get は必ず設定する必要がある 2 つのインターフェースです。

API のデバッグ

リクエストパラメータの連携

例:List インターフェースにページネーションパラメータを設定します(サードパーティ API 自体がページネーションをサポートしていない場合は、取得した一覧データをページ分割します)。

20251201163500

インターフェースに追加されている変数のみ有効になる点に注意してください。

サードパーティ API の接続パラメータ名NocoBase パラメータ
page{{request.params.page}}
limit{{request.params.pageSize}}

「Try it out」をクリックしてデバッグし、レスポンス結果を確認できます。

20251201163635

レスポンス形式の変換

サードパーティ API のレスポンス形式は NocoBase の標準と異なる場合があるため、変換してからでないとフロントエンドに正しく表示できません。

20251201164529

サードパーティ API のレスポンス形式に応じて変換ルールを調整し、NocoBase の出力標準に適合させます。

20251201164629

デバッグ手順の説明

20240717110051

エラー情報の変換

サードパーティ API でエラーが発生した場合、レスポンスのエラー情報の形式が NocoBase の標準と異なる可能性があるため、変換してからでないとフロントエンドに正しく表示できません。

20251201170545

エラー情報の変換を設定していない場合、デフォルトで HTTP ステータスコードを含むエラー情報に変換されます。

20251201170732

エラー情報の変換を設定すると、NocoBase の出力標準に適合させることができ、フロントエンドにサードパーティ API のエラー情報を正しく表示できます。

20251201170946 20251201171113

変数

REST API データソースでは、インターフェース連携に使用する 3 種類の変数が提供されています。

  • データソースのカスタム変数
  • NocoBase リクエスト
  • サードパーティレスポンス

データソースのカスタム変数

20240716221937

20240716221858

NocoBase リクエスト

  • Params:URL クエリパラメータ(Search Params)。インターフェースごとに Params は異なります。
  • Headers:リクエストヘッダー。主に NocoBase 固有の X- 情報を提供します。
  • Body:リクエストの Body。
  • Token:現在の NocoBase リクエストの API トークン。

20251201164833

サードパーティレスポンス

現在提供されているのはレスポンスの Body のみです。

20251201164915

各インターフェースの連携時に使用できる変数は次のとおりです。

List

パラメータ説明
request.params.page現在のページ番号
request.params.pageSize1 ページあたりの件数
request.params.filterフィルター条件(NocoBase の Filter 形式に準拠)
request.params.sortソートルール(NocoBase の Sort 形式に準拠)
request.params.appends必要に応じて読み込むフィールド。通常はリレーションフィールドの遅延読み込みに使用
request.params.fieldsインターフェースで出力するフィールド(ホワイトリスト)
request.params.except除外するフィールド(ブラックリスト)

Get

パラメータ説明
request.params.filterByTk必須。通常は現在のデータの ID
request.params.filterフィルター条件(NocoBase の Filter 形式に準拠)
request.params.appends必要に応じて読み込むフィールド。通常はリレーションフィールドの遅延読み込みに使用
request.params.fieldsインターフェースで出力するフィールド(ホワイトリスト)
request.params.except除外するフィールド(ブラックリスト)

Create

パラメータ説明
request.params.whiteListホワイトリスト
request.params.blacklistブラックリスト
request.body作成する初期データ

Update

パラメータ説明
request.params.filterByTk必須。通常は現在のデータの ID
request.params.filterフィルター条件(NocoBase の Filter 形式に準拠)
request.params.whiteListホワイトリスト
request.params.blacklistブラックリスト
request.body更新するデータ

Destroy

パラメータ説明
request.params.filterByTk必須。通常は現在のデータの ID
request.params.filterフィルター条件(NocoBase の Filter 形式に準拠)

フィールドの設定

接続先リソースに対応する CRUD インターフェースのデータから、フィールドのメタデータ(Fields)を抽出して Collection のフィールドとして使用します。

20240716223636

フィールドのメタデータを抽出します。

20251201165133

フィールドとプレビュー。

20240716224403

フィールドを編集します(他のデータソースと同様の方法です)。

20240716224704

REST API データソースブロックの追加

Collection の設定が完了したら、画面にブロックを追加できます。

20240716225120