Providing a formal deffinition of the XML for an API, makes using
the
API, in particular creating and maintaining client applications that
utilise the API much simpler, and far clearer for a developer.
There are an array of tools that provide class generation, and
automatic marshalling and unmarshalling of objects, generated straight
from a formally defined XML Document, for ruby, this project looks to
offer these functions:
https://github.com/rubyjedi/soap4r .
In my experience writing Java and Android clients, I have found that
the time spent creating an XSD or other formal XML definition, repays
10 fold in development time, and also makes keeping clients up to date
alot simpler. For DC Client I ended up writing my own:
https://github.com/mtaylor/deltacloud-tools/blob/master/DeltaCloudClient/...
But, I think it would be better as a whole to adopt this approach from
the start. It would not only benefit the creation of the CLI but also
anyone else who needs to utilise these APIs
It might be good to compare your approach to the one taken by the
rhevm-api project. Indeed, only today, Geert wrote up some nice info on
how to write client bindings for the API using our schema: