Hi Uwe,

like you have observed, the Web API versioning applies to query parameters,
responses and most things, but not the metadata model entirely. This
because we currently do not have a "data transfer object" layer between the
DHIS 2 metadata model and what we render in the API. As a consequence you
might see breaking changes in the metadata model, such as for associations
between objects.

We are working on this long-term, and trying to keep the changes to a
minimum. Note that we do not rename fields or make unnecessary model
changes, and that we documented such changes in the upgrade notes (see Web
API):

https://www.dhis2.org/225-upgrade



regards,

Lars





On Thu, Nov 3, 2016 at 6:21 PM, Bob Jolliffe <bobjolli...@gmail.com> wrote:

> The reason why there isn't a backward compatible api is because the
> underlying model has changed to support overriding the categorycombo per
> dataset.  So a dataset no longer has dataElements, but dataSetElements.
> The dataSetElement is a compound object consisting of both a dataelement
> reference and (possibly) an overridden categoryCombo.  Where you haven't
> overriden anything you don't see the latter.
>
> I am sure this has broken a few things out there.
>
> I wonder if a non-breaking solution would be to support the same behaviour
> as before with the dereferencing being done behind the scenes.  With the
> possible surprise that the response might also include a sibling
> categorycombo with the dataelement.  And the risk that if legacy api users
> ignore that fact (which almost by definition they will) they will report
> the wrong categorycombo for the dataelement.
>
> Or, even more transparently, any overriden categorycombo could be used to
> replace the categorycombo in the returned dataelement.  In which case
> everything would look exactly as before.  But users should be warned to not
> make any assumption about categorycombo and *always* return that field as
> part of the query.  I can see that becomes a pretty ugly constraint
> though.  Possibly the previous suggestion is safer.
>
> Lars and/or Morten would know best the reasons for taking the plunge and
> doing it the way that it is done.  I wasn't in on the design discussion.
> Possibly over the longer term it is a cleaner implementation to have the
> api reflect the actual underlying changed model.  Not sure.
>
>
>
>
>
> On 3 November 2016 at 14:21, Michael Mwebaze <michael.mweb...@gmail.com>
> wrote:
>
>> Thanks Uwe,
>>
>> I have been trying to figure this out as well.
>>
>>
>>
>> On 3 November 2016 at 04:04, Uwe Wahser <u...@wahser.de> wrote:
>>
>>> just found the answer myself: it has to be
>>> https://play.dhis2.org/demo/api/dataSets/N4fIX1HL3TQ.json?pa
>>> ging=false&fields=dataSetElements[dataElement[id,code,name]]
>>>
>>> the other question remains: why cant I use the old syntax by adding 24
>>> or 23 to
>>> the url?
>>>
>>> Regards,
>>>
>>> Uwe
>>>
>>> ---
>>> > Uwe Wahser <u...@wahser.de> hat am 3. November 2016 um 09:52
>>> geschrieben:
>>> >
>>> >
>>> > Dear all,
>>> >
>>> > I am a bit confused about the api in 2.25. Before, I was able to list
>>> > dataElements of a given dataSet via
>>> > https://play.dhis2.org/demo/api/dataSets/N4fIX1HL3TQ.json?pa
>>> ging=false&fields=dataElements[id,code,name]
>>> >
>>> > As I understand from the manual, this has changed to
>>> > https://play.dhis2.org/demo/api/dataSets/N4fIX1HL3TQ.json?pa
>>> ging=false&fields=dataSetElements[id,code,name]
>>> >
>>> > Two issues in this context:
>>> > 1 - I would have expected to be able to use the old syntax by adding
>>> 24 or 23
>>> > into the url - that doesn't work.
>>> > 2 - the new syntax only works for the id of a dataSetElement and
>>> doesn't bring
>>> > up code nor name. fields=dataSetElements[:all] only brings up a few
>>> attribute,
>>> > but not neither code nor name.
>>> >
>>> > Am I missing something? Haven't tested with other sub-ressources, yet.
>>> >
>>> > Thanks,
>>> >
>>> > Uwe
>>> >
>>> > _______________________________________________
>>> > Mailing list: https://launchpad.net/~dhis2-users
>>> > Post to     : dhis2-us...@lists.launchpad.net
>>> > Unsubscribe : https://launchpad.net/~dhis2-users
>>> > More help   : https://help.launchpad.net/ListHelp
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~dhis2-users
>>> Post to     : dhis2-us...@lists.launchpad.net
>>> Unsubscribe : https://launchpad.net/~dhis2-users
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-users
>> Post to     : dhis2-us...@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~dhis2-users
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>
>


-- 
Lars Helge Øverland
Lead developer, DHIS 2
University of Oslo
Skype: larshelgeoverland
l...@dhis2.org
http://www.dhis2.org <https://www.dhis2.org/>
_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to     : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help   : https://help.launchpad.net/ListHelp

Reply via email to