カスタム データ フィードは ArcGIS Enterprise の機能の 1 つで、開発者が ArcGIS でネイティブにサポートされていないデータ ソースから Web サービスを構築および公開することを可能にします。 カスタム データ フィードを通じてアクセスされるデータは、フィーチャ サービスの REST エンドポイントとして提供され、Web クライアント、デスクトップ アプリ、フィールド アプリ、またはその他の REST クライアントに配信できます。 カスタム データ フィードが適しているシナリオには、以下のようなものがあります:
カスタム データ フィードは ArcGIS Enterprise SDK に付属する cdf コマンドライン ツールを使用します。 このツールでは、JavaScript を使用して、データ ソースからデータを取得するカスタム データ プロバイダーを作成してテストできます。 また、コードをカスタム データ パッケージ ファイルにパッケージ化して、データ プロバイダーを ArcGIS Server に登録するために使用することもできます。 登録されると、データはデータ プロバイダーを参照するフィーチャ サービスとして、ArcGIS クライアントで利用できるようになります。
カスタム データ フィードはどのクライアントでも HTTP REST サービスとして利用可能です。また、既存の ArcGIS クライアントをサポートするよう特別に設計されており、ユーザーはサービスが外部またはサードパーティーのデータ ソースに基づいていることを意識せずに、カスタム データ フィードのデータとやり取りしたり、ポップアップを作成したり、フィーチャの編集を送信することができます。
カスタム データ フィードは ArcGIS Enterprise でのみ作成可能です。 ArcGIS Pro や ArcGIS Enterprise および ArcGIS Online の Web アプリで利用できます。
| 機能 | ArcGIS Online | ArcGIS Enterprise | ArcGIS Location Platform | ArcGIS Pro |
|---|---|---|---|---|
| カスタム データ フィード | N/A |
フルサポート 一部サポート
カスタム データ フィード統合を開発する際には、以下のベスト プラクティスを考慮してください:
大規模なデータ クエリーは慎重に管理してください。クエリー対象のデータセットが大きすぎる場合、改ページ、大きなクエリー サイズ、シリアライズや変換にかかる待ち時間が、カスタム データ フィードのパフォーマンス低下の原因になることがあります。 リモート API やデータ ソースがインデックス付け、属性ベースのフィルター、空間フィルターをサポートしている場合は、カスタム データ フィードにロジックを記述し、受信した fFeature レイヤーのリクエスト パラメーター (extent など) をバックエンドへの最適化されたリクエストに変換できます。
カスタム データ フィードは、ほとんどの ArcGIS アプリケーションで利用できるフィーチャ サービス エンドポイントを実装していますが、システム向けの対象アプリケーションは適切にテストする必要があります。一部のアプリケーションでは、複雑なクエリーを送信したり、フィーチャ サービスの追加機能を期待するため、カスタム データ フィードと正常に動作しない場合があります。 REST API のドキュメントを参照し、Esri と連携して、ワークフロー、カスタム データ フィード、プロバイダーに特有の制限を理解してください。
フィードには必要な属性のみを含めてください。 リモート API またはデータ ソースが多くの属性を提供する場合もありますが、ArcGIS クライアントへの応答には必要な属性のみを含めることで、最高のパフォーマンスを得ることができます。
可能な限り、既存の NodeJS ライブラリーを活用してください。 リモート API やサービスが、npm から入手可能なものなど、広く知られた NodeJS ライブラリーやモジュールを通じてアクセスできる場合は、これらのモジュールを使用して最新の状態に保つことをおすすめします。これらのモジュールは、そのリモート システム向けの最新のセキュリティーおよび認証基準を実装することが多いからです。 これらのモジュールは、プロバイダーによって開発される場合もあれば (Esri が管理する arcgis-rest-js モジュールなど)、オープン ソース コミュニティーによって管理される場合もあります。
カスタム データ フィードでは、各レコードに対して整数ベースの識別子が必要です。 可能であれば、バックエンド スキーマに組み込むか生成するようにしてください。これにより、CDF が ID を生成する必要性を回避し、一部の ArcGIS アプリケーションを使用する際の不整合を防ぐことができます。