I’m currently creating a GraphQL wrapper for Ubidots API, everything has been working OK until today that I started implementing the Resolver Chains (this is a “fancy” way of calling the nested queries) as I’m having issues with the N+1 problem and the throttling of the API.
One way to fix this N+1 problem when having access to the DB is to make two separate queries asking for all the data and tying up the data in memory, the DB is accessed two times instead of being accessed multiple times (N+1, hence the name), that works great if I had direct access to the DB, but this is obviously not the case here. So one way I’ve thought to workaround this problem is to get all the variables of the account but I’m not 100% sure what is the max value that is supported by the
page_size argument and if it’s safe to use it (it won’t change).
PS: I’m having another problem with the API and it’s that the response from the server doesn’t include the
Cache-Control header and hence the GraphQL doesn’t use the default cache strategy. I made a workaround on this by using a custom cache strategy. But it’d be great if you could check if the
Cache-Control could be implemented.