← Back to team overview

launchpad-dev team mailing list archive

Re: How do I support older API calls when changing the underlying model?

 

On Mon, 26 Jul 2010 14:45:39 +1200, Tim Penhey <tim.penhey@xxxxxxxxxxxxx> wrote:
> Hi Leonard,
> 
> I'm in the situation where I'm wanting to split up a status field on the branch 
> merge proposal into two.  However there is an existing API that is used to 
> fetch merge proposals.
> 
> How do we continue to support the older methods when changing the underlying 
> model?  Should we even try?
> 
> I'm wanting to break the queue_status member into merge_status and 
> review_status.  I was also considering "re-using" the 
> BranchMergeProposalStatus enum for the merge_status with changed values.
> 
> However I feel that this is more likely to break something.
> 
> I'm at a bit of a loss to know where to start with supporting the old method 
> where the method directly gets values from an enumerated type I'm changing.
> 
> Should I instead of reusing the BranchMergeProposalStatus enum, create two new 
> ones (instead of just one new one)?
> 
> How do I have a method that is only supported in an old API version?

I can't answer all your questions, but I can make sure you have seen

  eggs/lazr.restful-0.9.29-py2.6.egg/lazr/restful/docs/multiversion.txt

which documents the bare lazr.restful way of doing this. It may give you
some clues for at least some of your questions.

Thanks,

James



References