SAP Open Connectors

Handling Non-Standard Cursor Pagination

The standard paging functionality provided by Connector Builder covers most paging use cases. In situations where the provider requires additional information when paging, the `elements-next-page-token` can be used to pass information about the next request in the response headers.

For example, a provider returns the following paging data on a given request, which will be used to get the next page:

"count": "289",
    "page": {
      "next": {
        "batch": "200",
        "start": 201
      },
      "this": {
        "batch": "200",
        "start": 1
      }
    }

In the connector post hook, information about the next page can be base64 encoded and returned in the response headers:

// Paging
if (body.result && body.result.page && body.result.page.next) {
 headers["elements-next-page-token"] = CE.b64(JSON.stringify(body.result.page.next));
}

Then in the connector pre-hook, the next page token is decoded and the paging information sent to the provider to fetch the next page:

// Paging
if(request_parameters.nextPage) {
 const nextPage = JSON.parse(CE.decode64(request_parameters.nextPage));
 // Send nextPage values to the provider
}