Migrating debbugs' SOAP interface to JSON

Bastian Venthur <[email protected]> Thu, 6 Dec 2018 11:10:34 +0100
Newsgroups gmane.linux.debian.devel.debbugs
Message-ID <[email protected]>
Dear debbugs Developers,

I'm Bastian the developer of python-debianbts, the library that is used 
by reportbug to query the BTS.

First of all, I'm really happy that we have an API that allows to query 
the BTS, and the current interface is *a lot* better than the HTML 
parsing that we did 10 years ago. However, while SOAP was state of the 
art a while ago, it has it's limitations. The most severe one for us: 
it's getting harder and harder to find libraries that parse SOAP 
properly in Python and trying to parse SOAP replies "by hand" seems 
daunting.

Also there are a lot of bugs related to parsing the SOAP replies from 
the BTS and it is not always clear if the problem is the BTS or the 
library that tries to parse the SOAP reply. My feeling having worked 
with SOAP, it is unpleasant and messy.

Since our API is already nicely structured, I wonder if we couldn't 
switch on the long run to something like JSON? JSON can be easily 
created and parsed in many languages and makes debugging a lot easier.

Unfortunately I don't speak Perl, so I can't really help you with the 
server side implementation, but I'd be willing to help as much as 
possible testing anything that helps to get away from SOAP.

If there's a general willingness to move that direction, I propose an 
incremental approach where we create a second API with JSON replies for 
each endpoint, one by one and I implement the corresponding parser for 
each new endpoint. We could run both APIs in parallel for a while and 
turn of the old one once we're sufficiently confident that reportbug 
works properly.


What do you think?


Cheers,

Bastian