Mark the old API as deprecated and isolate it in preparation for the new API.

Review Request #1561 — Created May 1, 2010 and submitted


Review Board


This marks our current API as deprecated in preparation for the new API. This does the following:

Two new decorators have been added, @webapi_deprecated and @webapi_deprecated_in_1_5, that patch the WebAPIResponses to use the old ReviewBoardAPIEncoder (now DeprecatedReviewBoardAPIEncoder) and Djblets's BasicAPIEncoder (soon to be replaced by ResourceAPIEncoder). It forces HTTP response types for errors to be HTTP 200 OK in order to prevent breakage of old clients. It also adds a 'deprecated' key to the responses that contain the version they're deprecated in.

Our old unit tests are now in a DeprecatedAPITests class, and each description says that the API is deprecated.
The test suite passes.