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

杉本和也
杉本和也
リードエンジニア
クロスプラットフォームモバイルアプリ開発ができるUnifinity から AlloyDB のデータに接続する方法



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

API Server の設定

以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなAlloyDB OData サービスを作成していきましょう。

AlloyDB への接続

Unifinity からAlloyDB のデータを操作するには、まずAlloyDB への接続を作成・設定します。

  1. API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。 接続を追加
  2. 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「AlloyDB」を選択します。
  3. 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
    CData コネクタの追加方法はこちら >>
  4. それでは、AlloyDB への接続設定を行っていきましょう! 接続設定
  5. AlloyDB 接続プロパティの取得・設定方法

    AlloyDB に接続するには、次の接続プロパティが必要です。

    • Server:AlloyDB データベースをホスティングしているサーバーのホスト名またはIP アドレス。
    • Port(オプション):AlloyDB データベースをホスティングしているサーバーのポート。このプロパティはデフォルトで5432に設定されます。
    • User:AlloyDB サーバーに認証する際に使われるユーザー。
    • Password:AlloyDB サーバーに認証する際に使われるパスワード。
    • Database(オプション):AlloyDB サーバーに接続する場合のデータベース。設定されていない場合は、ユーザーのデフォルトデータベースが使用されます。

    AlloyDB への認証

    標準認証

    標準認証(事前に提供されたユーザーとパスワードの組み合わせを使用)は、デフォルトの認証形式です。

    標準認証で接続する場合は、これ以上のアクションは必要ありません。

    pg_hba.conf 認証スキーム

    CData 製品がサポートしている他の認証方法では、AlloyDB サーバー上のpg_hba.conf ファイルで有効化する必要があります。

    AlloyDB サーバーでの認証の設定については、こちらを参照してください。

    MD5

    pg_hba.conf ファイルのauth-methodmd5 に設定すると、MD5 パスワード検証を使用して認証できます。

    SASL

    CData 製品は、SASL(特にSCRAM-SHA-256)でパスワードを検証することで認証できます。

    この認証方法を使用するには、pg_hba.conf ファイルのauth-methodscram-sha-256 に設定します。

    Kerberos

    Kerberos 認証は、CData 製品が接続を試行している際にAlloyDB サーバーで開始されます。この認証方法を有効化するには、AlloyDB サーバーでKerberos を設定します。AlloyDB サーバーでのKerberos 認証の設定を完了したら、CData 製品からKerberos 認証を行う方法については、ヘルプドキュメントの「Kerberos の使用」セクションを参照してください。

  6. 接続情報の入力が完了したら、「保存およびテスト」をクリックします。

AlloyDB 接続プロパティの取得・設定方法

AlloyDB に接続するには、次の接続プロパティが必要です。

  • Server:AlloyDB データベースをホスティングしているサーバーのホスト名またはIP アドレス。
  • Port(オプション):AlloyDB データベースをホスティングしているサーバーのポート。このプロパティはデフォルトで5432に設定されます。
  • User:AlloyDB サーバーに認証する際に使われるユーザー。
  • Password:AlloyDB サーバーに認証する際に使われるパスワード。
  • Database(オプション):AlloyDB サーバーに接続する場合のデータベース。設定されていない場合は、ユーザーのデフォルトデータベースが使用されます。

AlloyDB への認証

標準認証

標準認証(事前に提供されたユーザーとパスワードの組み合わせを使用)は、デフォルトの認証形式です。

標準認証で接続する場合は、これ以上のアクションは必要ありません。

pg_hba.conf 認証スキーム

CData 製品がサポートしている他の認証方法では、AlloyDB サーバー上のpg_hba.conf ファイルで有効化する必要があります。

AlloyDB サーバーでの認証の設定については、こちらを参照してください。

MD5

pg_hba.conf ファイルのauth-methodmd5 に設定すると、MD5 パスワード検証を使用して認証できます。

SASL

CData 製品は、SASL(特にSCRAM-SHA-256)でパスワードを検証することで認証できます。

この認証方法を使用するには、pg_hba.conf ファイルのauth-methodscram-sha-256 に設定します。

Kerberos

Kerberos 認証は、CData 製品が接続を試行している際にAlloyDB サーバーで開始されます。この認証方法を有効化するには、AlloyDB サーバーでKerberos を設定します。AlloyDB サーバーでのKerberos 認証の設定を完了したら、CData 製品からKerberos 認証を行う方法については、ヘルプドキュメントの「Kerberos の使用」セクションを参照してください。

API Server のユーザー設定

次に、API Server 経由でAlloyDB にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。

  1. 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
  2. 次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
  3. その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。

AlloyDB 用のAPI エンドポイントの作成

ユーザーを作成したら、AlloyDB のデータ用のAPI エンドポイントを作成していきます。

  1. まず、「API」ページに移動し、 「 テーブルを追加」をクリックします。
  2. アクセスしたい接続を選択し、次へをクリックします。
  3. 接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。

OData のエンドポイントを取得

以上でAlloyDB への接続を設定してユーザーを作成し、API Server でAlloyDB データのAPI を追加しました。これで、OData 形式のAlloyDB データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。

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

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

Unifinity でAlloyDB の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

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

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

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

はじめる準備はできましたか?

詳細はこちら、または無料トライアルにお申し込みください:

CData API Server お問い合わせ