I have this code :
| url url2 json json2 artObjectJson levelsJson|
url := 'https://www.rijksmuseum.nl/api/nl/collection/' , objectNumber
url2 := 'https://www.rijksmuseum.nl/api/nl/collection/'
, objectNumber , '/tiles?key=14OGzuak'.
"Read the data from the api respons"
json := NeoJSONReader fromString: (ZnEasy get: url) contents.
artObjectJson := json at: #artObject.
painter := ((artObjectJson at: #principalMakers) at: 1) at: #name.
title := artObjectJson at: #title.
"Read the imageUrl from the api respons"
json2 := NeoJSONObject fromString: (ZnEasy get:
levelsJson := (json2 at: #levels).
imageUrl := levelsJson at: 1.
but now I see that somethimes ZnEasy get: url gives a document of zero
Now can I put the rest in a big ifFalse block or make another function
for it or is there a better more smalltalk way of dealing with this
On 28 Sep 2020, at 07:28, Roelof Wobben via Pharo-users <[hidden email]> wrote:
I think it would be good if you ask de rijksmuseum api guys to explain why
is correctly typed with content-type application/json, while
has a missing content-type (while it is clearly also application/json).
You can use accessors, as if they exist, and they will turned into #at: accesses, with the additional feature of returning nil when the property is not found.
So, for example, at the end, you can say
Instead of at: 1 you can use first, together this gives you
json2 levels first.
The same approach is possible for the first json expression and its subsequent use (but parse via NeoJSONObject fromString:).
json artObject principalMarkers first name.
Coming back to your problem, 'sometimes' is not a bug report we can work on, it does not sound good. It could be that the server returns an empty response. But normally, if something is wrong, you should get a real error.
The API seems cool though, I got a nice painting back retrieving one of the embedded URLs (artObject->webImage->url) using
ZnEasy getJpeg: 'https://lh3.googleusercontent.com/N2m90mImdcoLacUybb_rxcktTwtr0LFhtuzxbSE9elIhElF6jpWngx96_uZ0L1TGNof5pNt4n_Ygb4KYlPTpA9o6788=s0'.
If you use the Form tab in the inspector, you can see the image
Op 28-9-2020 om 16:19 schreef Sven Van Caekenberghe:
I have asked the maintainers of that api but no respons at all. It looked if someone made this a long time ago and then disappeaed.
So im stuck at a api which does very wierd things and I try to work around it.
Maybe a idea to test first zneasy for the respons and it it's 500 then find a way to display with seaside a message that no data is found otherwise display the details
|Free forum by Nabble||Edit this page|