Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, Ed, biapar, Willr, Ingo, swaiba

Restfulserver relationdepth not working?

Go to End

4 Posts   2760 Views


Community Member, 26 Posts

21 May 2010 at 2:10am

Edited: 06/06/2014 9:45am

Created a class "Promotion" extending "DataObject" and set $api_access = true. I now have some has_one relations, like below:

class Promotion extends DataObject

static $api_access = true;

public static $has_one = array(
"TeaserImage" => "Reference_TeaserImage",
"Themenseite" => "Page"


I would now like to call this page via Restful-Server, so I typed:

As from here it works fine. I get data like this

<DataObjectSet totalSize="4">
<Promotion href="http://localhost/silverstripe/api/v1/Promotion/1.xml">
<Themenseite linktype="has_one" href="http://localhost/silverstripe/api/v1/Page/6.xml" id="6"/>
<Promotion href="http://localhost/silverstripe/api/v1/Promotion/2.xml">

As you can see, I can not recieve the location / filename of the TeaserImage, and not the URLSegment of the linked Page. There is a URL Parameter called "relationdepth" in the RestfulServer, but it has no effect to the result.

Can anyone tell me, how I can get the dataobject with image path and path to the linked page within one request?



Forum Moderator, 5523 Posts

21 May 2010 at 8:50pm

Edited: 06/06/2014 9:45am

relationdepth only shows links to related objects AFAIK. I'm pretty sure you have to make multiple calls to get the data from related objects.


Community Member, 25 Posts

14 December 2012 at 5:54am

Edited: 06/06/2014 9:45am

Old question I know but found this thread via google while searching for the same thing and maybe someone will find it usefull.

The way I solved this problem:

public static $has_one = array(
	'Thumbnail' => 'Image',

public static $api_access = array(
	'view' => array('ThumbnailURL')

public function getThumbnailURL() {
	if($this->ThumbnailID) {
		return $this->Thumbnail()->URL;
	else {
		return 0;


Community Member, 5 Posts

27 March 2014 at 9:08am

Edited: 06/06/2014 9:45am

Sry guys - I know this post is old, but the problem still exists.

I know I'm sounding grumpy, but having to hand code every property for a relation kind of eliminates the point of having a service that should know how to serialize a slightly more than simple DataObject model that contains relations.

There is still not a decent RESTful API for Silverstripe that works seamlessly like almost every other framework out there.

Is this in the SS roadmap or are we going to have to work out this key functionality? The existing one looks like it was extracted from the 2.4 core and left to dangle on its own. Curious why this was done.

Thoughts? Solutions?