I'm just getting started with OData, so I don't know much about it, but I've written a client that will read from an arbitrary OData service, provided at runtime. I've been using Simple.OData.Client for this and have had good success, and the metadata (which I've learned about along the way) makes things like listing out the available entities very easy. However, I've just realized that Simple.OData.Client requires the metadata in order to work at all, and this has made some people I work with nervous.
My question is, then,
- Do all OData services provide metadata?
- Are they required to do so?
- Will they even work without it?
- And how reliable is it? i.e. How safe is it for me to rely on the correctness of the metadata provided, if I don't really need it?
I know there isn't a clear cut answer to this, but I am trying to gauge how reasonable it is for our application to require any OData service to provide accurate metadata.