We know that some of you need to fetch large sets of data (tens or hundreds of thousands or maybe more records). An example could be fetching in one request orders, with order lines, customer and product information, and other related data. There are several problems in regard to this:
pagination is mandatory, so multiple requests need to be done
optimized queries might not return all the expected data (see https://docs.business.visma.net/docs/features/unoptimized) so you'll have to request an unoptimized execution
execution could take time and unless the query is executed asynchronously (https://docs.business.visma.net/docs/schema/async) timeout may occur
We are evaluating options for making it possible to fetch large sets of data without these issues. We would like to hear your feedback on the matter.
Due to time constraints, the operation cannot be executed synchronously. Therefore, such an API must be asynchronous. With the availability of web hooks in the near future, you'll be able to be notified that the operation completed without having to poll periodically.
The result can be made available in a file stored on a file server for a period of time. You would receive the URI back and then you can download it directly. The data format is a matter of discussion, whether this should be the JSON format returned from GraphQL or something else, such as CSV.
Let us know what are your requirements for large data sets scenarios and what are your expectations.
... View more