← Back to team overview

dhis2-devs-core team mailing list archive

ApiVersioning redux

 

Hi Morten (and everyone else).

We spoke briefly about the API versioning last week. What is the current
status of the development?

I think right now there's a bit of confusion still as to how it's supposed
to work. Especially in the migration phase that we're going into.

Could you perhaps provide us with examples of correct
configuration/annotations for the following scenarios?


   1. Iterating on an existing endpoint by adding an api 24-specific
   request handler.
   2. Creating a new endpoint (controller/method) which is only to be
   available in 24 and onwards (and not on default, 23).

Also, we should figure out and agree on what should be the behaviour when
an endpoint doesn't exist (i.e. is not available on "default"). 404? 405?

Currently the web api tests in trunk fail because they expect 404 on
non-mapped endpoints, but in actuality 405 is returned by Spring. What are
we expecting to happen here? I assume the tests should work as internal
docs for this stuff in the intermediate...

Also, the current setup, as far as I can tell, only seems to work for GET.
As an example I've mapped a controller to:

@RequestMapping( value = ProgramStageNotificationSchemaDescriptor.API_ENDPOINT )

This works fine for GET, allowing me to use api/24/endpoint but not
api/endpoint or api/23/endpoint. For POST and PUT, however, all of the
above actually seem to work. I guess this is a bug, or just a temporary
implementation?

Morten, could you shine some of your glorious light on this? :)

-- 
Halvdan Hoem Grelland
Software developer, DHIS 2
University of Oslo
http://www.dhis2.org <https://www.dhis2.org/>

Follow ups