This is my first post here so forgive me if I'm in the wrong place.
I'm running a mapping data flow in Azure Synapse to query ITGlue's REST API. It is only returning one page of results, vs all of them.
Here's the endpoint I'm querying: https://api.itglue.com/configurations
Here's the response body for that endpoint (truncated to keep it brief):
{
"data": [
{
"id": "1234567",
"type": "configurations",
"attributes": {
......
},
"relationships": {
"adapters-resources": {
"data": []
}
}
}
],
"meta": {
"current-page": 1,
"next-page": 2,
"prev-page": null,
"total-pages": 1000,
"total-count": 1000,
"filters": {}
},
"links": {
"self": "https://api.itglue.com/configurations?page%5Bnumber%5D=1&page%5Bsize%5D=1",
"next": "https://api.itglue.com/configurations?page%5Bnumber%5D=2&page%5Bsize%5D=1",
"last": "https://api.itglue.com/configurations?page%5Bnumber%5D=1714&page%5Bsize%5D=1"
}
}
Here's what I think is the relevant configuration for ITGlue:
As far as I can tell, this is the correct syntax for the pagination rule. The only thing I can think that is messing this up is the characters in the 'next' link, which are http encoded [ and ] characters.
The IT Glue API docs for this endpoint here confirm this - with page[number] instead.
Has anyone had this issue before?
Here's what I've tried with pagination rules in Azure Synapse - all to no success (dataflow only returns one page of data)
- AbsoluteUrl - Body - {links.next} (pictured)
- AbsoluteUrl - Body - links.next
- AbsoluteUrl - Body - $.{links.next}
- AbsoluteUrl - Body - ['links']['next']
- AbsoluteUrl - None - body.{links.next}
- AbsoluteUrl - None - body.links.next
- Query - page%5Bnumber%5D - Body - {meta.next-page}
- Query - page[number] - Body - {meta.next-page}
When testing this behavior with Postman or Powershell Invoke-RestMethod
, it seems to work correctly.