製品をチェック

製品の詳細・30日間の無償トライアルはこちら

CData API Server

REST のデータをモバイル開発のUnifinity で利用する方法

クロスプラットフォームモバイルアプリ開発ができるUnifinity から REST のデータに接続する方法

杉本和也
リードエンジニア

最終更新日:2022-05-19
rest ロゴ

CData

apiserver ロゴ画像
Unifinity ロゴ

こんにちは!リードエンジニアの杉本です。

Unifinity は、iOS / Android / Windows のマルチOS 向けのモバイルアプリ開発が可能なプラットフォームです。Unifinity Studio という専用のツールで、UIをベースにアプリ画面をデザインしたり、DB・APIなどと連動した処理・ロジックを作成することができます。Unifinity では、REST API への接続ができるため、CData の製品を組み合わせることで対応データソースを増やすことができます。この記事では CData API Server と ADO.NET Provider for REST を使って、Unifinity でREST にデータ連携するモバイルアプリを開発する方法を説明します。
Unifinity モバイルアプリからREST にデータ連携。

API Server の設定

次のステップに従い、セキュアな REST API サービスを立ち上げます

デプロイ

API Server はサーバー上で稼働します。Windows 版は、製品に組み込まれているスタンドアロンのサーバーかIIS に配置して稼働させることができます。Java 版では、Java servlet コンテナにAPI Server のWAR ファイルを配置します。 デプロイの詳細は製品ヘルプを参照してください。API Server を Microsoft AzureAmazon EC2Heroku にデプロイする方法はKB に記事があります。

REST への接続

API Server の管理コンソールで[設定]→[接続]から新しい接続を追加してREST を追加します。

REST のアイコンがデフォルトのAPI Server の接続先にない場合には、API Server がJava 版の場合はJDBC Drivers、API Server がWindows 版の場合はADO.NET Data ProvidersからREST ドライバーをAPI Server と同じマシンにインストールして、API Server を再起動します。

REST への接続に必要な認証情報を入力します。接続のテストを行い、接続を確認して、設定を保存します。

データソースへの認証については、データプロバイダーのヘルプドキュメントの「はじめに」を参照してください: データプロバイダーはREST API を双方向データベーステーブルとして、XML/JSON ファイル(ローカルファイル、一般的なクラウドサービスに保存されているファイル、FTP サーバー)を読み取り専用のビューとしてモデル化します。HTTP Basic、Digest、NTLM、OAuth、FTP などの主要な認証スキームがサポートされています。認証についての詳細は、ヘルプドキュメントの「はじめに」を参照してください。

URI を設定し、認証値を指定したら、Format を"XML" または"JSON" に設定して、データ表現をデータ構造により厳密に一致させるようにDataModel を設定します。

DataModel プロパティは、データをどのようにテーブルに表現するかを制御するプロパティで、以下の基本的な設定を切り替えます。

  • Document (デフォルト):REST データのトップレベルのドキュメントビューをモデル化します。データプロバイダーはネストされたエレメントをデータの集計として返します。
  • FlattenedDocuments:ネストされたドキュメントとその親を単一テーブルとして暗黙的に結合します。
  • Relational:階層データから個々の関連テーブルを返します。テーブルには、親ドキュメントにリンクする主キーと外部キーが含まれます。

リレーショナル表現の構成について詳しくは、「REST データのモデル化」を参照してください。次の例で使用されているサンプルデータもあります。データには、人、所有している車、およびそれらの車で行われたさまざまなメンテナンスサービスのエントリが含まれています。The data includes entries for people, the cars they own, and various maintenance services performed on those cars.

接続を確立後、[設定]→[リソース]の画面で からREST API として公開するエンティティを選択します。

API Server のユーザー設定

[設定]→[ユーザー]からAPI にアクセスできるユーザーの認証設定を行います。API Server はトークンでの認証を行うことができます。 IP アドレスでAPI へのアクセスを制限することも可能です。デフォルトではローカルマシンからのアクセスのみが許可されています。SSL の設定も可能です。

オンプレミスDB やファイルからのAPI Server 使用(オプション)

オンプレミスRDB やExcel/CSV などのファイルのデータを使用する場合には、API Server のCloug Gateway / SSH ポートフォワーディングが便利です。是非、Cloud Gatway の設定方法 記事を参考にしてください。

Unifinity でREST のREST サービスに接続

Unifinity プロジェクトの作成

Unifinity から APIServer への接続設定をしていきます。

  1. Unifinity Studioを立ち上げてます。
  2. 新しくプロジェクトを作成します。今回は「inquiriesProject」としました。
  3. 次に画面を作る前に、データを格納するためのDBを作ってしまいます。 DBタブを選んで、「+」ボタンでDBを追加します。名前は「inquiries」です。
  4. Unifinity
  5. 画面を作成します。一覧画面に表示している「表」は先程作成したDBの「inquiries」と紐付けています。
  6. Unifinity
  7. 画面本体のオープン時の処理として後ほど解説するデータ取得ロジックを指定しています。これによって、表にデータが表示されるようになります。
  8. Unifinity
  9. アプリの要となるロジック部分を構成します。
  10. 一覧画面を表示するための「データ取得ロジック」を作成します。登録・更新のロジック作成も可能です。
  11. データ取得ロジックは以下のような処理で構成されています。Cdata API Serverにリクエストを送り、そのデータをデータベースに書き込むことで一覧表示を実現しています。
  12. Unifinity
  13. API Serverへのリクエストには、ヘッダーで認証情報を指定する必要があります。そのため、ディクショナリー作成コンポーネントを使って、ContentTypeとともに、「x-cdata-authtoken」というプロパティで先程API Serverのユーザー作成画面で構成したToken情報を設定するようにします。
  14. Unifinity
  15. HTTPリクエストには「ネットワーク/GET2」のコンポーネントを使用し、URIにAPI Serverのinquiriesリソースエンドポイント「例:http://localhost:8387/api.rsc/sakila_inquiries」を指定し、ヘッダーオプションに先程作成したディクショナリを指定します。
  16. Unifinity
  17. あとはJSON構造をディクショナリに格納し、配列構造を持っている「value」の部分を読み込んだ上で、データベースに書き込みます。
  18. Unifinity Unifinity
  19. データベースに書き込む際には、予めデータクリアーをするように指定しておきます。
  20. Unifinity

    このように REST 内のデータを簡単にUnifinity で作成するモバイルアプリで使用することができるようになります。

    CData API Server の無償版およびトライアル

    CData API Server は、無償版および30日の無償トライアルがあります。是非、API Server ページ から製品をダウンロードしてお試しください。

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。