On Wed, Jun 11, 2014 at 12:03 PM, Kiran Prakash <kprak...@thoughtworks.com>
wrote:

> Is it possible to keep backward compatibility intact while making API
> changes?
>

Ideally yes, but these changes did require breaking the API in a few
places. Going forward there should be no major changes to the external API
(only additions).

One more place where the API change is breaking our code is this, while
> querying the org hierarchy.
>
>  for eg:
> http://localhost:8080/api/organisationUnits/d06372e4302?includeDescendants=true
>

Yes, this have been disabled for now, should be back very soon (today)
together with includeChildren.

--
Morten

Would give the queried organization and all its descendents and its custom
> attributes etc.
>
> with the new API, we're trying to get
>
> <http://localhost:8080/api/organisationUnits/d06372e4302?fields=:all,children[:all]>
>
> http://localhost:8080/api/organisationUnits/d06372e4302?fields=:all,children[:all]
>
> the decendents of the org has been renamed to 'children',  but the
> children does not have all the custom attributes set. We are using a custom
> attribute on the organization to figure the type of node in the hierarchy
> (eg. country, hospital, etc ) and some of our domain logic is based on this
> type.
>
>
> Are we missing something in our query? Please let us know.
>
> Thanks in advance,
>
> Kiran.
>
>
>
> On Wed, Jun 11, 2014 at 3:16 PM, Morten Olav Hansen <morte...@gmail.com>
> wrote:
>
>> Yes,
>>
>> This is by design, :all merely means "give me all property on current
>> level". It will by default render idObjects with just idObject properties,
>> and Collections of idObject as a collection of idObject properties.
>>
>> I know this breaks things, but we were really not happy with the current
>> use of viewClasses (@JsonView), I hope it won't be too difficult to
>> implement.
>>
>> We do support recursive expansion of the fields properties, so you can do
>> ?fields=a,b,c[a,b,c[a,b]],d[:all] etc, but yes.. this requires changes to
>> your code (most of this is supported in 2.15, but you will to use include=
>> instead)
>>
>> --
>> Morten
>>
>>
>> On Wed, Jun 11, 2014 at 11:40 AM, Aravind Muralikrishnan <
>> aravi...@thoughtworks.com> wrote:
>>
>>> Hello Morten,
>>>
>>> Thank you for the quick fix!
>>>
>>> We were trying the new api and it works. We also looked at the code a
>>> little bit, and we saw that if we don't give any query params, we are
>>> defaulting it to ":all". However this retrieves fields only at the first
>>> level and does not retrieve fields for the nested entities.
>>>
>>> Ex: When we get user object using say */api/users/OYLGMiazHtW.json *it
>>> just gets the user object and does not get all the fields of the
>>> userCredentials object.
>>>
>>> This might break backwards compatibility of the api, as the older api
>>> was giving out all the fields by default including nested objects. Is this
>>> the expected behaviour?
>>>
>>>
>>> Thanks,
>>> Aravind
>>>
>>>
>>> On Wed, Jun 11, 2014 at 1:19 PM, Morten Olav Hansen <morte...@gmail.com>
>>> wrote:
>>>
>>>> Hi
>>>>
>>>> This should now be working in rev 15615.
>>>> /api/users/OYLGMiazHtW.json?fields=:all,userCredentials[:all]
>>>>
>>>> Please try it out and report any issues back
>>>>
>>>> --
>>>> Morten
>>>>
>>>>
>>>> On Tue, Jun 10, 2014 at 1:33 PM, Morten Olav Hansen <morte...@gmail.com
>>>> > wrote:
>>>>
>>>>> Hi
>>>>>
>>>>> All our endpoint have now been switched our to using the new field
>>>>> filtering (similar to the old inclusion/exclusion), so the data you want 
>>>>> is
>>>>> probably there, but you have to tell the system you want to have it. I do
>>>>> see that there is a bug in the UserCredentials class, I will fix that
>>>>> tomorrow.
>>>>>
>>>>> Please see the documentation here:
>>>>> http://www.dhis2.org/doc/snapshot/en/user/html/ch30s07.html
>>>>>
>>>>> Regarding the the custom serializers, we needed a bit more custom
>>>>> control over the output, we still use Jackson (ObjectMapper, but not
>>>>> data-binding) in the backend, together with xml (StAX).
>>>>>
>>>>> --
>>>>> Morten
>>>>>
>>>>>
>>>>> On Tue, Jun 10, 2014 at 1:02 PM, Mahendra Kariya <
>>>>> mahen...@thoughtworks.com> wrote:
>>>>>
>>>>>> Hello Morten,
>>>>>>
>>>>>> We're facing some issues due to some recent changes to UserController.
>>>>>>
>>>>>> The serialized 'User' json has some issues.
>>>>>>
>>>>>>  The 'usercredentials' field is now being serialized as
>>>>>> 'org.hisp.dhis.user.UserCredentials' and also some of the properties of
>>>>>> UserCredentials (like userAuthorityGroup ) is not being serialized.
>>>>>>
>>>>>> One of our application is breaking due to these contract changes. We
>>>>>> tried fixing it, but soon got lost in the custom serialization code.
>>>>>>
>>>>>> Can you please have a look at this.
>>>>>>
>>>>>> ( Also on a side note, is there any specific reason we are going for
>>>>>> custom serialization instead of going for standard serializers like
>>>>>> Jackson? )
>>>>>>
>>>>>>
>>>>>> Regards
>>>>>>
>>>>>> Mahendra/Kiran
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> 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
>>>
>>>
>>
>
> _______________________________________________
> 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
>
>
_______________________________________________
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