【发布时间】:2016-06-08 22:31:33
【问题描述】:
我使用 SilverStripe 3.2.1 和 restfulserver addon 运行了一个相对简单的设置,并使用了各种与使用 the elemental addon 的页面相关联的小部件。
当我通过 API 发出 GET 请求以检索第 1 页的一些数据时,我可以看到相关的 ElementAreaID:
# GET /api/v1/Page/1.json?fields=Title,URLSegment,Content,ElementArea
{
"Title": "Welcome",
"URLSegment": "home",
"Content": "A bunch of HTML here from all the widgets in the page...",
"ElementArea": {
"className": "ElementalArea",
"href": "http://ss.local:3000/api/v1/ElementalArea/11.json",
"id": "11"
}
}
如果我通过 ElementalArea API 调用点击链接,它将列出我页面中的所有元素:
# GET /api/v1/ElementalArea/11.json
{
"ID": "11",
"Widgets": [
{
"className": "Widget",
"href": "http://ss.local:3000/api/v1/Widget/9.json",
"id": 9
},
{
"className": "Widget",
"href": "http://ss.local:3000/api/v1/Widget/8.json",
"id": 8
},
...
]
}
如果我遵循这些 API 路径,它将提供每个小部件的最新版本的内容。
我的问题是如何在原始页面字段列表中包含 Widget DataObjects 中的某些字段?
理想情况下,我希望每个 Widget 的 Content 字段与初始 Page API 请求一起以数组形式返回。
供参考:
- 一个页面有一个
ElementArea - 一个
ElementArea有很多Widgets -
Widget包含我想要用于我的Page的内容
【问题讨论】:
-
那个额外的数组会包含什么?只是内容?还是带有 Widget-ID、href 和 Content 字段的对象?
-
真的不用大惊小怪。最终,我需要通过 ElementalArea 数据透视表将页面中小部件中的内容与页面一起返回。
标签: php api silverstripe