基本的に私がやりたいのは、ユーザーが情報を入力できるようにするSilverStripeCMSを作成することです。この情報を通常のようにWebページに表示する代わりに、JSONを使用してハイブリッドモバイルアプリに出力したいと思います。RESTfulサーバーAPIとデータオブジェクトを使用する必要があることはわかっていますが、実際にどのように機能するかについては少しわかりません。
これについて少し啓蒙していただければ幸いです。
基本的に私がやりたいのは、ユーザーが情報を入力できるようにするSilverStripeCMSを作成することです。この情報を通常のようにWebページに表示する代わりに、JSONを使用してハイブリッドモバイルアプリに出力したいと思います。RESTfulサーバーAPIとデータオブジェクトを使用する必要があることはわかっていますが、実際にどのように機能するかについては少しわかりません。
これについて少し啓蒙していただければ幸いです。
データベースへのデータの保存は非常に簡単です。これは、5 つの基本的なチュートリアルの 1 つでも説明されています。
基本的な機能だけが必要な場合は、REST を介してこの情報を提供することもそれほど難しくありません。SilverStripe にはすでに REST サポートが付属していますが、少なくとも 2.4 では、この REST サポートはかなり制限されており、データベース モデルと密接に結びついています。
私が知る限り、REST サーバーは SS 3.0 で削除されました。
SS 2.4 の RestfulServer クラスに関する API ドキュメントへのリンク: http://api.silverstripe.org/2.4/sapphire/api/RestfulServer.html#class_details
そのドキュメントから取得したように、オブジェクトへのAPIアクセスを許可するのはかなり簡単です:
class Article extends DataObject {
static $db = array('Title'=>'Text','Published'=>'Boolean');
static $api_access = array(
'view' => array('Title'),
'edit' => array('Title'),
);
}
経由でアクセスするよりもhttp://mysite.com/api/v1/Article
これでニーズが満たされない場合は、次の 2 つの方法があります。
または、実際に HTML のスニペットを吐き出すこともできます。私はいくつかの Phonegap アプリでこれを行いました。スタイル、メインの JavaScript などは明らかに phonegap アプリに埋め込まれています。ただし、HTML スニペットを取得するだけのミニ ウィンドウ (iframe とほぼ同じ) を作成できます。また、テンプレートを使用してその HTML を変更することもできます (変更には非常に便利です)。
JQmobi フレームワークと data-defer 機能を確認してください。
data-defer の属性をサイトの URL に配置するだけで、その URL は HTML スニペットにすぎません。