Hi..I am Ram. After working for 15 years in Enterprise IT, one fine day, I end up being a founder of a tiny software company – PragmatiQa Ltd, UK. In this post, I will write about a tool that I was working on for past few weeks.

So I was just trying to solve my own problem – related to OData Service Development and consumption. In the process, I end up in making an online tool -‘XOData : Visualize and Explore OData Services’ - that might be useful for others too.

In short, after trying out a few desktop based *developer* tools for OData Service development and consumption, I felt the need for a light-weight, practical and easily accessible ( online and to-an-extent device-agnostic ) OData metadata visualizer and exploration utility - that can be useful not just for *developers* but also for others like business-process-experts, entrepreneurs etc. – someone who is just trying to understand an OData API and see if it is relevant to them.

I’m an Enterprise IT consultant and I normally work with SAP systems/tools but there are some brilliant open source JavaScript libraries available and all I needed was to put these together to fulfill my requirements – basically my own JavaScript code is not worth looking at – not yet - but it does seem to solve a problem by combining all these great libraries.

Apart from Bootstrap & jQuery, some of the JavaScript libraries used are:

  • For OData parsing and Diagram : Main JavaScript libraries used are, datajs for OData-metadata-xml parsing, a layout library dagre to get the position of the nodes and jsPlumb / JQueryUI for Graph/UI rendering (connected draggable boxes to show the entity/properties and relationships).
  • For exploring OData Services / Query Builder : An excellent library from OData open-source publication .
  • XML Tree : XMLTree for Tree Display of XML

I’ll share some details of this tool here and hope it will solve some of the challenges related to OData design/prototyping and documentation/API awareness.

What is XOData?

XOData is a generic web-based OData Service visualization & exploration tool that will assist in rapid design, prototype, verification, testing and documentation of OData Services. Online version of the tool is free and accessible on Internet at https://pragmatiqa.com/EDMXGraph and it provides following options to explore OData metadata/services.

  • Direct Service or Metadata URL access option for visualization and exploration of publicly accessible OData services
  • Metadata XML File upload option for offline visualization of metadata (Entity Relationship).

XOData Online Version

What do you need to use this tool?

  • Online XOData is ..well..available on internet :) at https://pragmatiqa.com/EDMXGraph and accessible through any new generation Browser ( IE10+, Chrome, Firefox, Safari etc.)
  • You will need at least OData Service metadata XML file *or* metadata URL of publicly accessible Service.There is an option to upload the service metadata XML file – so you can visualize and check metadata details even if OData service is not accessible on internet. Another option is to use metadata URL in case the OData service is publicly accessible over internet. With this option Services can be visualized as well as explored ( query data-exploration through Query Builder )...This tool should work for Services upto OData version 3.0

Online XOData Options
Apart from Online version of XOData, there is also a backend integrated version (currently for SAP NetWeaver Gateway) and that provides further useful options to auto generate service models and implementation from existing Database tables and their relationships – will be useful for rapid prototyping of OData Service. Some further details and demo is available in the presentation slides.
SAP Integrated XOData

Q/As

  • How can I use online XOData to visualize my own services that are only accessible on-premise/Intranet? Please save the OData service metadata XML in a file on your local folder and then use the upload metadata XML File option to visualize the entity relationships and metadata details. However, Query Builder for data exploration will obviously not work for File upload option - as actual service is not accessible. But if you are a UI developer, you can still use it to understand the URL that you may need to build for a particular query.
  • What about Data security / Privacy? No data is sent to server side except for publicly accessible services which are already in public domain.
    • Only publicly accessible services ( already accessible on internet to anyone without login/password ) are being accessed with Service/URL option. No data is stored on XOData server.
    • File upload option is the one that you might use for your own services and this is completely done on the client side through HTML5 File API - actually, even if you disconnect your WI-FI/Internet connection just before File Upload - it will still work , as file upload and then visualization is completely on client side/Browser.
    • Apart from information related to web analytics (by the hosting provider), no other information is uploaded/stored on XOData server neither this site requires login or registration.
  • Can I have a direct URL link for a publicly accessible OData service- e.g. I want to embed in a tweet? If you want a direct link for a OData service with metadata URL as : http://api.internetvideoarchive.com/1.0/DataService/$metadata then you can use the metadata url as a parameter to XOData tool’s URL :

Publicly accessible Example services from OData.org are already added in the list of services - ready for exploration. Any advice/guidance/feedback would be greatly appreciated...Thank You!