1

SilverStripe 3でRESTfulサーバーAPIを使用する方法について少し混乱しています。学習を始めたばかりで、次のことが混乱しています。

当サイトのすべてのコンテンツはデータベースに保存されています。DataObjectクラスの子である各クラスは、データベースに独自のテーブルを持ちます。

このようなクラスのすべてのオブジェクトは、そのテーブルの行に対応します。これは、Model-View-Controllerの「モデル」である「データオブジェクト」です。ページタイプには、ページのすべてのデータを表すデータオブジェクトがあります。DataObjectから直接継承するのではなく、SiteTreeから継承します。通常、「ページ」データオブジェクトを作成し、他のすべてのページタイプに対してこれをサブクラス化します。これにより、サイトのすべてのページで一貫した動作を定義できます。

I have done this to set up pages but now I am learning about the RESTful server API and it says to create an object that extends DataObject.

Forgive my ignorance but would extending SiteTree not be the same thing?

Very confused so would appreciate some enlightenment.

4

2 に答える 2

5

上でコメントしたように、SiteTreeを拡張すると、DataObjectが拡張されますが、多くのオーバーヘッドが発生します。SiteTreeはバージョン管理、階層、およびサイト内のページに適したクラスにするその他の優れたトリックを提供するため、このオーバーヘッドの一部は役立つ場合があります。

ただし、多数のオブジェクトを管理する場合、階層モデルまたはバージョン管理モデルを使用しない場合、またはCMSでのオブジェクトの表示方法や管理方法をカスタマイズする場合は、拡張することをお勧めします。 DataObjectを直接。これに関するさまざまなチュートリアルがSilverStripeドキュメントサイトSSBitsにあります

これはあなたにも役立つかもしれません。

DataObjectサブクラスが適切に機能するようになったら、RestfulServer機能の追加を開始できます。これを行う最も基本的な方法は、クラスに静的プロパティを追加することです。

static $api_access = true; 

RestfulServerの使用に関する詳細は、こちらから入手できます。

于 2012-10-05T11:11:19.843 に答える
0

次のURLをご覧になりましたか:http://doc.silverstripe.org/framework/en/reference/restfulservice

この例では、RSS形式でデータを利用できるようにすることができます。データをJSONとして出力する簡単な方法があるかどうかはわかりませんが、RSSをjsonに変換する例はウェブ上にたくさんあるので、この形式で動作するようにアプリを更新し、必要に応じて変換することができます。

于 2012-08-15T08:26:51.803 に答える