Thanks @Bryan, I have followed that same guide line you mentioned. Some more details about my matillion environment:
- Version: 1.48.4 (build 596) AMI Version: 1.48.4.
- Running on aws for snowflake
- Api has Page based pagination with 200 response code and empty data set for nth+1 call
- Matillion has pagination feature in query profile management but it does not have option for Page based pagination so updated RSD file manually
- I am using Advanced Mode on Api Query Component
Here is sample RSD file:
<api:script xmlns:api="http://apiscript.com/ns?v1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<api:info title="actions" desc="Generated schema file." xmlns:other="http://apiscript.com/ns?v1">
<attr name="ACTION_TITLE" xs:type="string" readonly="false" other:xPath="action_title" />
<input name="rows@next" desc="Identifier used for paging" />
<input name="param1" dec="some param" />
<input name="param2" dec="another param" />
</api:info>
<api:set attr="BackwardsCompatibilityMode" value="true" />
<api:check attr="_input.rows@next">
<api:set attr="URI" value="https://API_END_POINT/api/stats/4?page=[_input.rows@next]" />
<api:else>
<api:set attr="_input.rows@next" value="1" />
<api:set attr="URI" value="https://API_END_POINT/api/stats/4" />
</api:else>
</api:check>
<api:set attr="RepeatElement" value="/dates/items/" />
<api:set attr="paramname#" value="param1" />
<api:set attr="paramvalue#" value="[_input.param1]" />
<api:set attr="paramname#" value="param2" />
<api:set attr="paramvalue#" value="[_input.param2]" />
<api:set attr="paramname#" value="type" />
<api:set attr="EnablePaging" value="TRUE" />
<api:script method="GET">
<api:set attr="method" value="GET"/>
<api:call op="jsonproviderGet">
<api:set attr="rows@next" value="[_input.rows@next | add(1)]" />
<api:push/>
</api:call>
</api:script>
</api:script>