0

基本上我想做的是创建一个允许用户输入信息的 SilverStripe CMS。我不想像往常一样在网页上显示此信息,而是想使用 JSON 将其输出到混合移动应用程序。我知道我必须使用 RESTful 服务器 API 和数据对象,但我有点不清楚它实际上是如何工作的。

希望能对此有所启发。

4

2 回答 2

1

将数据保存到数据库中非常容易,这甚至包含在 5 个基本教程之一中。

如果您只需要基本功能,通过 REST 提供此信息也不是那么难。SilverStripe 已经带有 REST 支持,但至少在 2.4 中,这种 REST 支持相当有限,并且与数据库模型密切相关。
据我所知,SS 3.0 中已删除 REST 服务器

这里是 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 种替代方案:

  1. 创建您自己的控制器来输出您需要的其余内容
  2. 或者,如果您需要复杂的 API,则使用像https://github.com/Luracast/Restler这样的 REST 框架(但将 Rester 设置为在 SilverStripe 中工作可能会很痛苦,因为 Restler 和 SS 都拥有网址魔术)
于 2012-08-20T20:12:03.437 回答
1

或者,您实际上可以只吐出 HTML 片段。我已经在几个 Phonegap 应用程序中做到了这一点。样式、主要 javascript 等明显嵌入在 phonegap 应用程序中。但是您可以创建只获取 HTML 片段的迷你窗口(几乎像和 iframe)。而且您可以方便地使用您的模板更改该 HTML(更改非常方便)。

查看 JQmobi 框架和数据延迟功能。

您只需将 data-defer 的属性放到您网站上的 URL 中,而该 URL 只是一个 HTML 片段。

于 2013-02-27T00:29:17.403 回答