2013-06-04 42 views
0

使用REST服務器模塊我做這個操作:silverstripe RestfulServer模塊 - 獲得相關記錄的所有屬性

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加載url。 在最糟糕的情況下,我認爲我必須從XML中獲取ProductImage URL(例如http://domain.com/api/v1/ProductImage/271.xml)並執行多個調用。

許多THX的任何幫助, 弗洛裏安

+0

狀態:我現在在做多個呼叫。但它似乎是一個緩慢的解決方案:( – spierala

回答

0

你需要增加relationDepthRestfulServer。您可以通過傳遞relationdepth查詢字符串參數來完成此操作。

順便說一句,它這樣工作的原因是通過不必實例化所有圖像對象來減少服務器上的負載。這也意味着帶寬也稍低。

+0

hi!relationdepth沒有幫助,我認爲它需要展現更深層次的關係,在我的情況下,ProductImages已經顯示,但仍然只有id和href屬性。 – spierala

+0

目前我可以通過在產品中添加公共getter函數來幫助自己,如下所述:http://www.silverstripe.org/dataobjectmanager-module-forum/show/12526 例如我添加了一個public getter,它返回包含所有相關ProductImage url的逗號分隔字符串。 – spierala

相關問題