cancel
Showing results for 
Search instead for 
Did you mean: 
Subscribe

Hi all,

I'd like to use the oData services of a on-premise SAP Commerce Cloud instance from a java client.

The current documentation of the OData services on Commerce Cloud only references bare" http requests(GET, POST, DELETE). I think that means that Commerce Cloud has yet to provide some better integration: indeed, I've been unable to find any java client available to address "on-premises" OData services: I did find plenty of documentation on how to do address services hosted on Cloud Foundry ou Neo by leveraging the very nice SAP Cloud SDK though.

On the other hand of the spectrum, there are a couple of projects allowing to generate the model representation of oData entities, leveraging the Apache Olingo project but which don't provide all the abstraction layer (over the http client plumbing, for instance) we would expect.

I'm assuming that Commerce Cloud will eventually provide this java client interface...

Any advice from you on what is the recommended solution to use in the meantime will be greatly appreciated.

Many thanks,

Cheers

View Entire Topic
abderzakeboufeta
Explorer
0 Likes

Hi @ivan.mirisola,

Thanks for your input.

I indeed went down the Cloud SDK way, and.... I'm hoping for the best....

I've generated the java model sources from the edmx model view available from the Commerce Cloud instance, that I have included in my integration project sources. From there, it's indeed really nice and easy to use the fluent API of the ODataQueryBuilder to implement service requests.

Yet, I'm still not sure it the good solution 😄 :

  • I've already had to "hack" dependencies (web filters) that are targeted at "cloud" applications(cloud foundry or neo).
  • I'm facing binary compatibility issues between my client project and the sdk dependencies, seemingly coming from the fact that my client project runs on jdk11(required by version 1905 of Commerce Cloud) versus the required 1.8 version of java enforced on the cloud sdk libraries.