dhis2-users team mailing list archive
-
dhis2-users team
-
Mailing list archive
-
Message #12036
Re: API 2.25: Return Full Property Set
Dear Uwe,
This is a json issue. Recently i had guidance from lars that the xml
returns even the empty properties.
Apparently, suggestions in the link below talks of leaving out properties
with null values.
https://google.github.io/styleguide/jsoncstyleguide.xml
The only work around:
1. Try using xml format ( if ok with U)
2. You will need to take back missing properties within your codes (
probably your previous work around)
On Dec 16, 2016 15:33, "Uwe Wahser" <uwe@xxxxxxxxx> wrote:
> Hi Jason,
>
> It's not new - I had that problem already last year, but managed to work
> around. Now I wanted to use more properties and the workaround doesn't
> work for that.
>
> I had decided against csv back then, but forgot why. Must have been a good
> reason, because normally I prefer csv :-)
>
> I also think that it is not a DHIS issue and that the kettle converter
> should be able to do that. But DHIS developers are usually more responsive
> :-)
>
> I was hoping that it wouldn't be a big deal, as it works with csv.
> Implementing it as a parameter would also give the choice of using that
> feature if needed, thus avoiding inflated payloads per default.
>
> Anyway, I think I'll enjoy our Xmas party now. Maybe I that gives me
> better ideas on Monday :-D
>
> Thanks for looking at it,
>
> Uwe
>
>
>
> Sent with AquaMail for Android
> http://www.aqua-mail.com
>
> On 16 December 2016 12:54:17 Jason Pickering <jason.p.pickering@xxxxxxxxx>
> wrote:
>
>> Hi Uwe,
>>
>> OK, I sort of see the problem you have, but am pretty sure its not a
>> DHIS2 problem. Are you saying that this is new behaviour, and it was not
>> like this before? I just checked an old instance I have which is running
>> 2.17, and it is exactly the same, so not sure this has changed any time in
>> the recent past.
>>
>> Maybe you should try and use CSV?
>>
>> https://play.dhis2.org/demo/api/organisationUnits.csv?
>> paging=false&filter=level:eq:3&fields=name,comment
>>
>> does produce an extra column (with NULLS).
>>
>> From the R standpoint (as well as other languages I think), its really up
>> to you to parse the payload as you need it, but its handled quite easily
>> for this case in R. Other times, the nested lists need to be flattened, if
>> that is what you require, but I do not see this as DHIS2 issue really. It
>> would make little sense to include all of these NULLs where they do not
>> exist, as it could drastically increase the size of the payload. That is
>> why they are not included, except where not null.
>>
>> [image: Inline image 1]
>>
>>
>>
>> On Fri, Dec 16, 2016 at 10:41 AM, Uwe Wahser <uwe@xxxxxxxxx> wrote:
>>
>>> Hi Jason,
>>>
>>> simple example:
>>> https://play.dhis2.org/demo/api/organisationUnits.json?pagin
>>> g=false&filter=level:eq:3&fields=name,comment
>>>
>>> What I'd expect would be a json package with name & comment for ALL
>>> organisationUnits, even when the comment is NULL. What I get is a comment
>>> property for Badjia (which I created for the example), for all the other I
>>> only get the name property:
>>> [{"name":"Badjia","comment":"This is a comment."},{"name":"Bagruwa"},
>>> {"name":"Baoma"}...]
>>>
>>> Converting this package in kettle would result to an error message that
>>> 50 (or whatever) instances of name were found, but only 1 instance of
>>> comment. kettle expects always the complete set of properties for all
>>> objects. Not sure how R or others handle this ...
>>>
>>> If there was a query parameter like returnNull=true , that could give
>>> back the null properties like {"name":"Bagruwa","comment":""}, it would
>>> be possible to work with these packages. Actually I had expected this to be
>>> the default behaviour, when specifying fields.
>>>
>>> Best regards,
>>>
>>> Uwe
>>>
>>> ---
>>>
>>> > Jason Pickering <jason.p.pickering@xxxxxxxxx> hat am 16. Dezember
>>> 2016 um 12:05 geschrieben:
>>> >
>>> >
>>> > Hi Uwe,
>>> > Could you give a specific example from the demo server with an API
>>> call,
>>> > and what is not working as you expect?
>>> >
>>> > Regards,
>>> > Jason
>>> >
>>> >
>>> > On Fri, Dec 16, 2016 at 8:48 AM, Uwe Wahser <uwe@xxxxxxxxx> wrote:
>>> >
>>> > > Sorry, on a closer look it only seems to work for empty collections.
>>> > > Properties of the object itself (e.g. email, comments of
>>> organizationUnits)
>>> > > are still left out.
>>> > >
>>> > > The floor is open again for other suggestions :-)
>>> > >
>>> > > Regards, Uwe
>>> > >
>>> > > > Uwe Wahser <uwe@xxxxxxxxx> hat am 16. Dezember 2016 um 10:24
>>> > > geschrieben:
>>> > > >
>>> > > >
>>> > > > Thanks a lot, Jason, I will try that. I tried 'fields=' expecting
>>> this
>>> > > would be the same as 'fields=:all' , which is obviously wrong.
>>> > > >
>>> > > > That's a very useful information - do you mind including it into
>>> the
>>> > > manual?
>>> > > >
>>> > > > Regards, Uwe
>>> > > >
>>> > > > ---
>>> > > >
>>> > > > > Jason Pickering <jason.p.pickering@xxxxxxxxx> hat am 16.
>>> Dezember
>>> > > 2016 um 10:13 geschrieben:
>>> > > > >
>>> > > > >
>>> > > > > Hi Uwe
>>> > > > > Have a look here
>>> > > > >
>>> > > > > https://ci.dhis2.org/docs/master/en/developer/html/
>>> > > webapi_metadata_field_filter.html
>>> > > > >
>>> > > > > and specifically the use of the ?fields=:all paramater.
>>> > > > >
>>> > > > > Regards,
>>> > > > > Jason
>>> > > > >
>>> > > > >
>>> > > > > On Fri, Dec 16, 2016 at 7:58 AM, Uwe Wahser <uwe@xxxxxxxxx>
>>> wrote:
>>> > > > >
>>> > > > > > Dear all,
>>> > > > > >
>>> > > > > > I am having a bit of an issue when querying metadata from the
>>> api in
>>> > > json
>>> > > > > > format and further processing them in kettle (Pentaho DI):
>>> DHIS2 only
>>> > > > > > returns those properties in the json-package that are not NULL.
>>> > > However,
>>> > > > > > the json converter in kettle needs the full property-set in
>>> order to
>>> > > create
>>> > > > > > a tabular structure from the data (don't know the reason for
>>> that).
>>> > > > > >
>>> > > > > > Is there a way to force the api to return the full property
>>> set,
>>> > > e.g. a
>>> > > > > > secret flag? I'd actually expect to get the full list - even
>>> if the
>>> > > > > > property is NULL -, at least when I specify a list of
>>> properties in
>>> > > the
>>> > > > > > field-filter ...
>>> > > > > >
>>> > > > > > Of course, I could also ask the kettle-guys to be a bit more
>>> > > flexible, but
>>> > > > > > normally they are not as agile as the DHIS2-DEVs ;-)
>>> > > > > >
>>> > > > > > Best regards,
>>> > > > > >
>>> > > > > > Uwe
>>> > > > > >
>>> > > > > > _______________________________________________
>>> > > > > > Mailing list: https://launchpad.net/~dhis2-users
>>> > > > > > Post to : dhis2-users@xxxxxxxxxxxxxxxxxxx
>>> > > > > > Unsubscribe : https://launchpad.net/~dhis2-users
>>> > > > > > More help : https://help.launchpad.net/ListHelp
>>> > > > > >
>>> > > > >
>>> > > > >
>>> > > > >
>>> > > > > --
>>> > > > > Jason P. Pickering
>>> > > > > email: jason.p.pickering@xxxxxxxxx
>>> > > > > tel:+46764147049
>>> > > >
>>> > > > _______________________________________________
>>> > > > Mailing list: https://launchpad.net/~dhis2-users
>>> > > > Post to : dhis2-users@xxxxxxxxxxxxxxxxxxx
>>> > > > Unsubscribe : https://launchpad.net/~dhis2-users
>>> > > > More help : https://help.launchpad.net/ListHelp
>>> > >
>>> >
>>> >
>>> >
>>> > --
>>> > Jason P. Pickering
>>> > email: jason.p.pickering@xxxxxxxxx
>>> > tel:+46764147049
>>>
>>
>>
>>
>> --
>> Jason P. Pickering
>> email: jason.p.pickering@xxxxxxxxx
>> tel:+46764147049 <+46%2076%20414%2070%2049>
>>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-users
> Post to : dhis2-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-users
> More help : https://help.launchpad.net/ListHelp
>
>
Follow ups
References