12

I've been playing with OData recently, and found a few (small) limitations on the out-of-the-box web service. I wonder if some of these limitations can be catered for by extending what is there already.

This question is purely exploratory: at this point in time I did not try anything yet.

Some of the things I want to explore:

  • Provide support to read SchemaContents using the /Schemas collection (currently Schemas only expose Publication ID, Schema ID and Title)
  • Create my own custom entities (for instance, "/Articles" which would map to "/Schemas(SchemaId=xx,PublicationId=xx)/Components")

Any tips/hints? Will it not work at all and I shouldn't bother? Probably better to create my own webservice on top of the current service and/or API?

  • I am also starting working on this direction, if anybody has contributed in this direction please suggest. Thanks!! – arienvicky Sep 23 '14 at 7:42
8

I'd say both are technically possible, although for the additional data you may have to store the data on your own if it isn't already available. You could do so with a publisher extension.

It's definitely possible to create your own methods in the existing web service -- you just have to implement a couple of interfaces. We did that to expose Promotions from SmartTarget, for instance. We needed to implement ODataEntryRegistrationService, ResolverBase, PropertyWrapper, Entity/BaseEntity, and EntryBuilder -- all from the com.tridion.webservices.odata package.

Unfortunately, I couldn't find any documentation about it -- which might indicate that it isn't yet a public extension mechanism (I don't know for sure either way).

| improve this answer | |
  • Thanks Peter. It is probably internal indeed, but since I'm exploring only and this won't be used in any "real" project, I'm not afraid to go there! :) – Nuno Linhares Feb 22 '13 at 13:39
  • please note that the 'interface' has changed in 2013, so looking at what SmartTarget did will get you only part of the way – Gertjan Assies Feb 23 '13 at 16:53
  • and yes is it still internal api – Gertjan Assies Feb 23 '13 at 16:54
  • 4
    The UGC product also extended the Odata web service and could possibly also be of help to you in this research. – Davina Erasmus Feb 23 '13 at 18:53
2

Yes, there is a way to extend the Odata.

Please check the referenced article: Odata Extension

Please note, extension is possible to odata however after every upgrade you might have to revisit this extension so that it continues to work.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.