I have a client who has a web service providing several different top-level entities. Let’s say there are three which are of particular interest: Organisations, Sectors and Activities.
The client wants to be able to search for a term across all three of these entities simultaneously without have to make three separate calls. For example, “return all records whose name contains bread“.
While the expand keyword would seem to be the solution at first glance, this only provides a view into the parent entity.
My suspicion is that this cannot be done by virtue of the way in which OData is designed to work, but I need to have a conclusive answer before going back to the client.
Unless the server provides a service operation for this exact purpose (and that would be pretty tricky to design anyway, what type should it return?), then it’s not possible in one query.
On the other hand the client can send three queries inside one batch request. So that it’s just a single roundtrip to the server. Might be good enough.