launchpad-dev team mailing list archive
-
launchpad-dev team
-
Mailing list archive
-
Message #03920
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