silverstripe RestfulServer模块 - 获取具有所有属性的相关记录

时间:2013-06-04 12:41:16

标签: rest content-management-system silverstripe

使用Restful Server模块我执行此操作:

GET /api/v1/(ClassName)?(Field)=(Val)&(Field)=(Val) - 搜索匹配的数据库记录

api应该获取与某个产品相关的所有图像的网址,如下所示: http://domain.com/api/v1/Product?ArticleID=myID

遗憾的是,返回的XML没有显示ProductImages的完整信息。只是属性href和id。 这里是xml:

<?xml version="1.0" encoding="UTF-8"?>
<ArrayList totalSize="1">
<Product href="http://domain.com/api/v1/Product/9.xml">
<ArticleID>myID</ArticleID>
<ID>9</ID>
<ProductImages linktype="has_many" href="http://domain.com/api/v1/Product/9/ProductImages.xml">
<ProductImage href="http://domain.com/api/v1/ProductImage/265.xml" id="265"/>
<ProductImage href="http://domain.com/api/v1/ProductImage/268.xml" id="268"/>
<ProductImage href="http://domain.com/api/v1/ProductImage/271.xml" id="271"/>
</ProductImages>
</Product>
</ArrayList>

ProductImage实际上具有更多属性,这些属性未在xml中显示。如何让它们可见?我做的时候可以看到所有的ProductImage属性。这个: http://domain.com/api/v1/Product/9/ProductImages

我使用curl加载网址。 在最坏的情况下,我认为我必须从XML(例如http://domain.com/api/v1/ProductImage/271.xml)获取ProductImage URL并进行多次调用。

很多thx任何帮助, 弗洛里安

1 个答案:

答案 0 :(得分:0)

您需要增加relationDepth内的RestfulServer。您可以通过传入relationdepth查询字符串参数来完成此操作。

顺便说一句,它的工作原理是通过不必实例化所有图像对象来保持服务器上的负载低。这也意味着带宽也略低。