1

我对如何在 SilverStripe 3 中使用 RESTful 服务器 API 有点困惑。我刚刚开始学习,以下内容让我感到困惑。

我们网站上的所有内容都存储在数据库中。作为 DataObject 类的子类的每个类在我们的数据库中都有自己的表。

这样一个类的每个对象将对应于该表中的一行——这是我们的“数据对象”,模型-视图-控制器的“模型”。页面类型有一个数据对象,它代表我们页面的所有数据。它不是直接从 DataObject 继承,而是从 SiteTree 继承。我们通常创建一个“页面”数据对象,并为所有其他页面类型创建子类。这使我们能够定义在我们网站的所有页面上一致的行为。

我这样做是为了设置页面,但现在我正在学习 RESTful 服务器 API,它说要创建一个扩展 DataObject 的对象。

原谅我的无知,但扩展 SiteTree 不是一回事吗?

很困惑,所以会很感激一些启示。

4

2 回答 2

5

如上所述,如果您扩展 SiteTree,那么您就是在扩展 DataObject,但会产生很多开销。其中一些开销可能对您有用,因为 SiteTree 提供了版本控制、层次结构和其他不错的技巧,使其成为您网站中页面的一个很好的类。

但是,如果您想管理大量对象,或者如果您不使用层次结构或版本控制模型,或者如果您只想自定义对象在 CMS 中的呈现或管理方式,那么最好扩展数据对象直接。SilverStripe文档站点SSBits上有各种关于此的教程

也可能对您有用。

一旦您的 DataObject 子类为您工作得很好,您就可以开始向它添加 RestfulServer 功能。最基本的方法是在你的类中添加一个静态属性:

static $api_access = true; 

有关使用 RestfulServer 的更多信息,请点击此处

于 2012-10-05T11:11:19.843 回答
0

您是否看过以下网址:http ://doc.silverstripe.org/framework/en/reference/restfulservice

此示例允许您以 RSS 格式提供数据。我不确定是否有一种简单的方法可以将数据输出为 JSON,但是网络上有很多将 rss 转换为 json 的示例,因此您可以简单地更新您的应用程序以使用这种格式并在需要时进行转换.

于 2012-08-15T08:26:51.803 回答