BaaS の概要
EMS、Cloud、REST の各アプリケーションの開発 への移動
BaaS(Backend as a Service)は MBaaS(Mobile Backend as a Service)とも呼ばれ、これを利用することで、モバイル(およびデスクトップ)アプリケーションをクラウド サービスに接続することができます。
RAD Studio には、アプリケーションを Kinvey と Parse の両 BaaS プロバイダに接続できるようにする REST BaaS(Backend as a Service)フレームワークが用意されています。
REST BaaS フレームワークを使用して Kinvey または Parse の BaaS プロバイダに接続すると、以下が可能になります。
- オブジェクトの作成、取得、更新、削除
- ユーザーの登録、ログイン、取得、更新、削除
- ファイルやストリームのアップロード、ダウンロード、削除
- オブジェクトやユーザーのクエリ
- プッシュ通知の送信
- デバイスでのプッシュ通知の登録および受信
目次
BaaS プロバイダ入門
BaaS プロバイダである Kinvey や Parse を操作できるようにするには、アカウントを作成する必要があり、その後、アプリケーションにこれらのサービスを追加するには、バックエンド プロバイダでアプリケーションを作成する必要があります。詳細については、以下を参照してください。
BaaS アカウント情報
いったん BaaS プロバイダでアプリケーションを作成したら、Kinvey および Parse は、RAD Studio アプリケーションの Kinvey プロバイダ コンポーネントおよび Parse プロバイダ コンポーネントに追加する必要があるいくつかのキーを提供します。
Kinvey キー:
Kinvey キーの名前 | プロパティ |
---|---|
アプリケーション キー(アプリケーション ID) | TKinveyProvider.AppKey |
アプリケーション シークレット | TKinveyProvider.AppSecret |
マスタ シークレット | TKinveyProvider.MasterSecret |
Parse キー:
Parse キーの名前 | プロパティ |
---|---|
アプリケーション ID | TParseProvider.ApplicationID |
マスタ キー | TParseProvider.MasterKey |
REST API キー | TParseProvider.RestApiKey |
REST.Backend API
REST.Backend API には、Kinvey や Parse と連携してユーザー、ストレージ、ファイル、クエリ、プッシュ通知、イベントなどを管理するための一連のコンポーネントが用意されています。
REST.Backend のコンポーネント
REST.Backend のコンポーネントでは、一般的すなわち抽象的な形で BaaS サービスをサポートしています。これらのコンポーネントを使って記述したコードは、Kinvey or Parse に固有のものではありません。たとえば、TBackendStorage コンポーネントを使用してオブジェクトを作成する場合は、Kinvey オブジェクトを作成しようと Parse オブジェクトを作成しようと、コードは同じです。
REST.Backend のコンポーネントでは、バックエンド サービス実装を利用して、Kinvey や Parse の呼び出しを行います。たとえば、TBackendStorage コンポーネントで使用できる Kinvey ストレージ サービスがあります。
BaaS アプリケーションを作成するには、BaaS プロバイダから提供されるクラウド サービスに適した接続情報が格納されたプロバイダ コンポーネント(TKinveyProvider や TParseProvider など)を組み込まなければなりません。プロバイダ コンポーネントをサービス コンポーネントに接続するには、サービス コンポーネントの Provider プロパティ(たとえば TBackendStorage.Provider など)にプロバイダ コンポーネントを指定する必要があります。 BaaS プロバイダ コンポーネントとサービス コンポーネントを以下の表に示します。
BaaS プロバイダ コンポーネント | 説明 |
---|---|
TKinveyProvider | Kinvey クラウド サービス接続に関する情報が格納されている Kinvey BaaS プロバイダ コンポーネント。 |
TParseProvider | Parse クラウド サービス接続に関する情報が格納されている Parse BaaS プロバイダ コンポーネント。 |
サービス コンポーネント | 説明 |
---|---|
TBackendStorage | オブジェクトの作成、取得、更新、削除に使用するコンポーネント。 |
TBackendUsers | ユーザーの登録、ログイン、取得、更新、削除などのユーザー アクションの実行に使用するコンポーネント。 |
TBackendFiles | ファイルやストリームのアップロードと削除に使用するコンポーネント。 メモ: このコンポーネントではファイルをダウンロードしません。ファイルをダウンロードするには、REST クラスである TDownloadURL を使用します。 |
TBackendQuery | オブジェクトやユーザーなどのクエリに使用するコンポーネント。
メモ: サービス実装によっては、サポートしているクエリの対象が異なる可能性があります。たとえば、Kinvey のサービス実装ではファイルのクエリを実行できますが、Parse のサービス実装ではできません。 |
TBackendAuth | ログインやユーザー登録などのユーザー認証の管理に使用するコンポーネント。 |
TBackendPush | プッシュ通知の送信に使用するコンポーネント。 |
TPushEvents | プッシュ通知メッセージのリスンに使用するコンポーネント。 |
REST.Backend のメソッド
REST.Backend.KinveyApi と REST.Backend.ParseApi の各 REST API ユニットを使用すると、それぞれ、Kinvey と Parse の REST API メソッドを実行できます。
これらのユニットには、BaaS プロバイダの REST API に直接対応しているメソッドが宣言されています。これらのユニットを使用すると、Kinvey または Parse の REST API エンドポイントを呼び出すコードを記述できます。これらのユニットを使って記述したコードは、Parse や Kinvey に固有のものになります。
使用可能な REST.Backend メソッドと、使用されるリソースおよび HTTP メソッドを以下の表に示します。
REST.Backend.KinveyApi のメソッド:
TKinveyApi のメソッド | リソース | HTTP メソッド |
---|---|---|
AppHandshake | AppData | GET |
CreateAppData | AppData | POST |
FindAppData | AppData | GET |
DeleteAppData | AppData | DELETE |
UpdateAppData | AppData | PUT |
QueryAppData | AppData | GET |
UploadFile | Blob | POST |
DeleteFile | Blob | DELETE |
DownloadFile | Blob | GET |
QueryFiles | Blob | GET |
RetrieveFile | Blob | GET |
SignupUser | User | POST |
LoginUser | User | POST |
RetrieveUser | User | GET |
RetrieveCurrentUser | User | GET |
UpdateUser | User | PUT |
DeleteUser | User | DELETE |
SuspendUser | User | DELETE |
PushRegisterDevice | Push | POST |
PushUnregisterDevice | Push | POST |
- メモ: 上記表の "リソース" 列で、AppData はクラウドに格納されているデータを、Blob はファイル(画像やビデオなど)を、User はユーザーを、Push はプッシュ通知を、それぞれ指しています。
REST.Backend.ParseApi のメソッド:
TParseApi のメソッド | リソース | HTTP メソッド |
---|---|---|
CreateClass | Classes | POST |
DeleteClass | Classes | DELETE |
FindClass | Classes | GET |
UpdateClass | Classes | PUT |
QueryClass | Classes | GET |
UploadInstallation | Installations | POST |
UpdateInstallation | Installations | PUT |
DeleteInstallation | Installations | DELETE |
QueryInstallation | Installations | GET |
PushToDevices | Push | POST |
PushBroadcast | Push | POST |
PushWhere | Push | POST |
UploadFile | Files | POST |
DeleteFile | Files | DELETE |
SignupUser | Users | POST |
LoginUser | Users | GET |
UpdateUser | Users | PUT |
DeleteUser | Users | DELETE |
QueryUsers | Users | GET |
- メモ: 上記表の "リソース" 列で、Classes はオブジェクトを、Installation はデバイス上にインストールされるアプリケーションのインスタンスを、Push はプッシュ通知を、Files はファイルを、Users はユーザーを、それぞれ指しています。
BaaS プロバイダの下記 API ドキュメントも参照できます。
ビジュアル LiveBinding
一部の BaaS コンポーネントではビジュアル LiveBinding をサポートしているため、[LiveBinding デザイナ]を使用して、それらのコンポーネントのプロパティをフォームのコントロールに接続することができます。
プロパティ | 値 | 典型的なバインディング コントロール |
---|---|---|
TBackendQuery.JSONResult | クエリの結果(TJSONArray)。 | TMemo |
TBackendQuery.BackendClassName | ストレージのクエリ時のコレクション名またはクラス名。 | TEdit |
TBackendQuery.BackendService | クエリ対象: ストレージ、ユーザー、インストール、ファイルなど。 | TEdit |
TBackendQuery.QueryStrings | クエリ文字列。その特定のクラウド サービスにとって有効な文字列でなければなりません。 | TMemo |
TBackendPush.GCM.Action | プッシュ メッセージの Action フィールド(Android の場合)。 | TEdit |
TBackendPush.APS.Alert | Alert フィールド。 | TEdit |
TBackendPush.APS.Badge | Badge フィールド(iOS の場合)。 | TEdit |
TBackendPush.APS.Sound | Sound フィールド(iOS の場合)。 | TEdit |
TBackendPush.GCM.Title | Title フィールド(Android の場合)。 | TEdit |
TPushEvents.JSONResult | 受信したすべてのメッセージを格納した JSON 配列。 | TMemo |
TPushEvents.Active | プッシュ メッセージをリスンするかどうか。 | TCheckBox |
BaaS 関連のトピック
- BaaS 関連のチュートリアル: