[openstack-tc] recommendation to deprecate XML in new major API versions

Sean Dague sean at dague.net
Tue Jan 14 11:51:31 UTC 2014


I started becoming really active in OpenStack during the Folsom cycle,
and one of the big cleanups that Dan Smith and I did was at the very end
of the cycle. There was 0 testing on the Nova XML API, and if you
actually tried to use it, you got inconsistent responses, or stack
traces. There were at least 6 critical bugs in that API because no one
used it. That got fix by dual stacking the Tempest tests. We did this
because we thought it would be embarresing for OpenStack to ship with an
interface that it said supported, and that it didn't in any real way.

So I feel personally responsible for not letting XML die back in Nova v2
by making it actually work.

Since then, many projects have followed Nova's lead and added XML APIs,
which I think has been completely wrong headed. The only reason we
didn't rip it out in Nova v2 is that it would be breaking in field
compatibility without an API version bump. (Something else I feel
strongly about).

However, the proliferation has costs (really costs in terms of people time).
 - It increases the amount of code in the projects, it impacts the kind
of data the JSON apis can return because they have to be XML friendly.
 - It doubles the width of the validation interface (and XML validation
is more code costly from python because it's not a direct serialization
like python).
 - It dramatically increases the width of the Documentation interface,
as we need XML examples as well as JSON.

And it's not something that's currently universal.
 - glance doesn't have an XML API
 - the python clients don't implement XML data payload

It also inhibits us doing really great things with our API, like making
it end user fully discoverable with json schema (because then we'd need
to figure out how we'd address that on the XML side, and that complexity
tends to kill the innovation).

With a new Nova API on the horizon, I think it's time to make a TC level
recommendation that XML payloads be deprecated, and that new major API
versions don't include them.

I'd like to bring this up for discussion either next week or the week
after, because I think that the way every version of this discussion has
gone in the past is a few people on a mailing list object, and we keep
the XML API. However I think that's not serving our users well, because
way too much energy gets diverted from really making our core JSON API
excellent for users.

	-Sean

-- 
Sean Dague
Samsung Research America
sean at dague.net / sean.dague at samsung.com
http://dague.net

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 482 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openstack.org/pipermail/openstack-tc/attachments/20140114/0f7be69a/attachment.pgp>


More information about the OpenStack-TC mailing list