注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Slate で Foundry Functions を使用する

Foundry Functions パネルを使用すると、Functions リポジトリに記述されたビジネスロジックを、Slate から「バックエンド」サービスとして実行できます。このモデルでは、従来の Web アプリケーションインフラストラクチャにおける クライアント を Slate アプリケーション、サーバー を Foundry Functions の実装、データベース をオントロジーと考えます。Foundry Functions をはじめる方法や Functions on Objects の使用方法について詳しくは、ドキュメントを参照してください。

Foundry Functions パネルでは、次のことができます。

  • アクセス権のある Foundry 関数を選択する。
  • この関数のバージョン(例:バージョン 0.0.5)を選択する。
  • 関数が許可している場合、型付きの入力を関数に渡す(オブジェクトセットを入力として受け取る関数では、Slate で定義したオブジェクトセットを Handlebars 経由で入力として渡し、解決できます)。
  • 関数の Handlebars 式 {{ff_foundry_function1}} を参照して、関数の型付きの出力を Slate で使用する。

Slate で使用する前に、Function Repository で関数を作成する必要があります。

Slate 向けのアプローチ

Slate アプリケーションで使用する関数を記述するときは、アプリケーションの ロジック をどこに実装するかによって異なる、2つのアプローチを検討してください。

  • 薄い Functions アプローチでは、関数は Ontology API のデータにアクセスするための単純な中継役となります。たとえば、散布図の半径として使用する値を適切なスケールに調整するなど、追加の操作は Slate アプリ内の通常の JavaScript 関数で行います。
  • 厚い Functions アプローチでは、ビジネスロジックと表示ロジックもすべて Foundry Functions レイヤーに移し、Slate アプリ自体には、ごく限定的な書式設定や表示ロジック、実際のレイアウト、ウィジェットの設定だけを残します。

Foundry Functions を使用して複雑な Slate アプリケーションのロジックレイヤーを整理・管理することには、次のような大きなメリットがあります。

  • 強い型付けは、潜在的なエッジケースをカテゴリーごと防ぐベストプラクティスです。
  • リポジトリでの作業により、アプリケーションのフロントエンドとバックエンドでバージョン管理とコラボレーションを分離でき、コードの整理や構造化に関する標準的な手法も実践できます。
  • アプリケーションロジックを特定のフロントエンドから切り離すことで、ほかのアプリケーションから参照できる再利用可能なコンポーネントを作成できます。

関数の入力と出力のデータ型

Foundry Functions は、関数の入力と出力のデータ型で説明されているように、標準のデータ型、オントロジーから生成されたデータ型、カスタムデータ型など、幅広い入力と出力のデータ型をサポートしています。

厚い Functions アプローチでは、特定のグラフや HTML ウィジェットにデータを設定するために必要な形式で正確にデータが返されるよう、カスタムの入力と出力のデータ型を定義するのが一般的です。