Tip

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

REST API データソース

データソース:REST APIStandard Edition+

はじめに

このプラグインを使うと、REST API からのデータをシームレスに連携できます。

インストール

このプラグインは商用プラグインのため、プラグインマネージャーからアップロードして有効化する必要があります。

20240323162741

REST API データソースの追加

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

20240721171420

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

20240721171507

コレクションの追加

NocoBase では、RESTful なリソースはコレクションにマッピングされます。例えば、Users リソースの場合です。

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

これらのAPIエンドポイントは、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 データソースのコレクション設定は以下の通りです。

List

リソースのリストを表示するためのインターフェースをマッピングします。

20240716211351

Get

リソースの詳細を表示するためのインターフェースをマッピングします。

20240716211532

Create

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

20240716211634

Update

リソースを更新するためのインターフェースをマッピングします。 20240716211733

Destroy

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

20240716211808

List と Get の両インターフェースは、必須で設定する必要があります。

API のデバッグ

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

例: List インターフェースにページネーションパラメータを設定します。(もしサードパーティAPIがページネーションをネイティブでサポートしていない場合、NocoBase は取得したリストデータに基づいてページネーションを行います。)

20241121205229

インターフェースに追加された変数のみが有効になることにご注意ください。

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

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

20241121210320

レスポンス形式の変換

サードパーティAPIのレスポンス形式は NocoBase の標準ではない場合があり、フロントエンドで正しく表示するためには変換が必要です。

20241121214638

サードパーティAPIのレスポンス形式に基づいて変換ルールを調整し、NocoBase の出力標準に準拠するようにします。

20241121215100

デバッグプロセスの説明

20240717110051

変数

REST API データソースは、API 連携のために3種類の変数を提供しています。

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

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

20240716221937

20240716221858

NocoBase リクエスト

  • Params:URL クエリパラメータ(Search Params)です。各インターフェースによって異なります。
  • Headers:リクエストヘッダーです。主に NocoBase 独自の X- 情報を提供します。
  • Body:リクエストボディです。
  • Token:現在の NocoBase リクエストの API トークンです。

20240716222042

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

現在、レスポンスボディのみが提供されています。

20240716222303

各インターフェース連携時に利用可能な変数は以下の通りです。

List

パラメータ説明
request.params.page現在のページ番号
request.params.pageSize1ページあたりの項目数
request.params.filterフィルター条件(NocoBase のフィルター形式に準拠する必要があります)
request.params.sortソートルール(NocoBase のソート形式に準拠する必要があります)
request.params.appendsオンデマンドで読み込むフィールド。通常、関連フィールドのオンデマンド読み込みに使用されます。
request.params.fieldsインターフェースが出力するフィールド(ホワイトリスト)
request.params.except除外するフィールド(ブラックリスト)

Get

パラメータ説明
request.params.filterByTk必須。通常、現在のデータIDです。
request.params.filterフィルター条件(NocoBase のフィルター形式に準拠する必要があります)
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 のフィルター形式に準拠する必要があります)
request.params.whiteListホワイトリスト
request.params.blacklistブラックリスト
request.body更新するデータ

Destroy

パラメータ説明
request.params.filterByTk必須。通常、現在のデータIDです。
request.params.filterフィルター条件(NocoBase のフィルター形式に準拠する必要があります)

フィールドの設定

適応されたリソースの CRUD インターフェースデータから、フィールドのメタデータ(Fields)をコレクションのフィールドとして抽出します。

20240716223636

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

20241121230436

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

20240716224403

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

20240716224704

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

コレクションの設定が完了したら、インターフェースにブロックを追加できます。

20240716225120