Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to query a soap endpoint via odata?

I've got a SOAP endpoint:

 <organization URL>/XRMServices/2011/Organization.svc 

I would like to create an odata wrapper around this service, such that when navigating to http://myodataservice/api/Entities$?filter=AccountNumber eq '123123'

It would retrieve data from the SOAP (wsdl) service, but it would allow the client to issue odata queries.

Is it possible to query a SOAP service using ODATA?

like image 429
Alex Gordon Avatar asked Sep 09 '16 15:09

Alex Gordon


People also ask

Is OData rest or SOAP?

Open Data protocol (ODATA) ODATA is derivative of REST or built on top of it. - It is approved from International Organization for Standardization (ISO) & International Electrotechnical Commission (IEC) for release.

What is OData Web service?

The Open Data Protocol (OData) is a web protocol that is designed for querying tabular data and provides you with an alternative to SOAP-based web services.


1 Answers

You could create an OData wrapper around a SOAP endpoint but I don't think that it is worth it.

The OData service would allow filtering, ordering and selecting by all of the properties (amongst other things) and the SOAP service may not allow all of this so your OData service would probably have to go and get all of the data and then post process it which loses the main benefit of OData in that you can do all of the filtering and sorting on the server side. You may as well just get the data client side and filter it there.

If your SOAP service somehow does have all of this support then yes, you could write an OData wrapper for it and get these benefits but it would still be a lot of work to convert all of the different possible queries into something that your SOAP service can handle.

I don't know your reasons for wanting an OData wrapper but it seems like this might be a lot of work for minimal benefit but it all depends on your use case.

like image 171
TomDoesCode Avatar answered Oct 28 '22 13:10

TomDoesCode