OData is released under the Microsoft Open Specification promise. This allows anyone to create OData services that implement the specification and to freely interoperate with OData implementations.

Currently there are several OData service producers and server libraries including .Net Framework, Java, Rails and several client libraries across a range of platforms such as Objective-C, Javascript, PHP, and Java. The fact that an OData service can be consumed by a wide range of applications and libraries makes interoperability a key requirement.

Today we are announcing the OData Service Validation Tool to address that requirement. The goal with this tool is to enable OData service authors ensure that their service interoperates well with any OData client. Consumers of the OData protocol can also benefit from this tool by testing OData service implementations that they are building an experience for to pinpoint potential issues.

The tool can currently validate the following types of OData endpoints:

  • Service document
  • Metadata document
  • A feed/collection
  • An Entry

The following URI constructs are currently not supported:

  • Select, Expand and Format system query options in the endpoint URIs
  • Endpoint URIs pointing to payloads larger than 1 MB
  • Authenticated feeds

The screenshot below shows validation of a Metadata document. It can be seen that 7 rules that are related to Metadata document were executed and the metadata document passed all these checks.

screenshot1

Did you notice that the payload that was validated is displayed in the Source section? This is especially useful when the validation results in errors or warnings since the line in the payload highlighted in such cases. Screenshots below demonstrate this using a service with a metadata document which has errors:

screenshot2

screenshot3

The current (alpha) release of this tool runs a small representative set of rules derived from the specification. You can see a current list of rules here.

We are actively working on adding more rules to increase the coverage across the specification so that compliance can be determined with a much more exhaustive set of rules. The goal is to add new rules to the service on a regular cadence.

Please go ahead and try the tool either with a service of your own or using one of many public OData services.

Let us know if you have any questions or comments about this service or if there is a feature that you would like to see added. This tool is in the very early stages of development and you can help shape its evolution by providing feedback. Please join the OData mailing list to provide feedback or report issues.