user2232887
user2232887

Reputation: 309

Spring Data Rest Mongo - how to create a DBRef using an id instead of a URI?

I have the following entity, that references another entity.

class Foo {
    String id;
    String name supplierName;
    **@DBRef** TemplateSchema templateSchema;
...
}

I want to be able to use the following JSON (or similar) to create a new entity.

{
    "supplierName": "Stormkind",
    "templateSchema": "572878138b749120341e6cbf"
}

...but it looks like Spring forces you to use a URI like this:

{
    "supplierName": "Stormkind",
    "templateSchema": "/template-schema/572878138b749120341e6cbf"
}

Is there a way to create the DBRef by posting an ID instead of a URI?

Thanks!

Upvotes: 1

Views: 620

Answers (1)

Oliver Drotbohm
Oliver Drotbohm

Reputation: 83161

In REST, the only form of ID's that exist are URIs (hence the name Unique Resource Identifier). Something like 572878138b749120341e6cbf does not identify a resource, /template-schema/572878138b749120341e6cbf does.

On the HTTP level, entities do not exist, only resources identified by URIs. That's why Spring Data REST expects you to use URIs as identifiers.

Upvotes: 3

Related Questions