Skip to main content
14-Alexandrite
February 1, 2022
Solved

Odata Custom Rest Endpoint status code 201

Hi,

 

we have implemented a custom Odata Rest Endpoint. I want to return http status code 201 Created when an object is created and the status code 200 when an object is updated via post request. I couldn't achieve it by setting the boolean variable setCreated on the ActionResult that is returned. Does anybody have an idea?

 

Thanks in advance.

xolomonAnswer
14-Alexandrite
February 3, 2022

Hi fivig,

thanks for your reply. I think it only works if you return the object as an entity. In our case I don't want to return a Windchill object but a custom response which contains string attributes. When you return a custom response in a way like below it doesn't work. 

ComplexValue complexValue = new ComplexValue();
complexValue.getValue()
.add(new Property("String", statusAttribute, ValueType.PRIMITIVE, statusAttributeValue));
EntityAttribute entityAttribute = new EntityAttribute(null, "Response",
PropertyValueType.COMPLEX, complexValue);
result.setReturnedObject(entityAttribute);

 

Cheers,

xolomon

 

2 replies

5-Regular Member
February 2, 2022

Hi xolomon,

Looks strange, in WRS 2.1 should works fine. What is your version of WRS?

if actionResult.isCreated() then ActionProviderProcessor , return org.apache.olingo.commons.api.http.HttpStatusCodeHttpStatusCode.CREATED.getStatusCode()

Translate
xolomon14-AlexandriteAuthorAnswer
14-Alexandrite
February 3, 2022

Hi fivig,

thanks for your reply. I think it only works if you return the object as an entity. In our case I don't want to return a Windchill object but a custom response which contains string attributes. When you return a custom response in a way like below it doesn't work. 

ComplexValue complexValue = new ComplexValue();
complexValue.getValue()
.add(new Property("String", statusAttribute, ValueType.PRIMITIVE, statusAttributeValue));
EntityAttribute entityAttribute = new EntityAttribute(null, "Response",
PropertyValueType.COMPLEX, complexValue);
result.setReturnedObject(entityAttribute);

 

Cheers,

xolomon

 

Translate