Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add next page token to PagedResult #82

Open
danielEsmart opened this issue Feb 23, 2022 · 2 comments
Open

Add next page token to PagedResult #82

danielEsmart opened this issue Feb 23, 2022 · 2 comments

Comments

@danielEsmart
Copy link

In many cases a token for the next page is used, but neither PagedResult or PagedInfo includes this.
This could be solved by adding a string property to either PagedResult or PagedInfo.

I'm glad to do a PR with proposed changes.

@ardalis
Copy link
Owner

ardalis commented May 6, 2022

Why would it be a string property? How is the token used?

I'm open to the addition, just not sure of how one would use it when working with paged data.

@danielEsmart
Copy link
Author

Thanks for the reply.

Use cases:

Utilizing the paging function on supported databases.
To prevent the database from having to count the total amount of records returned from the query for each request.
Avoid the need for counting and keeping track of pages or records. Just use the token until the token is null (end of list).
Example:
We query a database api that supports continuation token for a list of records, but only 1000 at a time.
Then we receive a list of records and a continuation token in a header.
We then use that token to get the next 1000 in the next request to the api.
Repeat that until the token is null, and we have received all the records.

This is espescially useful when dealing with document db that has a limit of 1000 records on searches.

Token Example:
+RID:~zZsJALuJciTIbQkAAAAAAA==#RT:1#TRC:10#RTD:kmuM5aCUfQC/Ixfyqz/MBMHZTyOg#ISV:2#IEO:65551#FPC:AgEAJQAaAAI4AOToKBEAwP2CQKHcm39yAoD/8QPRAngADAgAEScA+OFA/x8NEADxHwDAIUABAOEFAP4RQB8ADiIAcS0GAEyAUw3APzLE/wc+gRCA34AxAAADUQAYIBeAgQH4Dw8gADEA4AcRBZwDfoNIhkEBAPARQP8AMQAA3hFABwCRAgDAERYAoRwDABEFAPwhQH8Av4DRDADAcUD/ABIuALIEAPj/Ae+eAcAPAPECAAbBABgAbYWWgB2ADYDhA/D/EUAPAG+B8QLwAMEBgAETBgDSIwD8CwAUCAAhEADAEUD/AxU0AAErAPwhQA8AMQCA/yFAAQAhAPj/EUD/H6IEAN4HAMELAP5hQP9ZHIAhAMD/YUD/B3EAwP8WogDQAMBAwQAA/sBAFYAxBAD+wUABAL+A0kN///sBwQAA/8BAIQDA/xJBHwD8/7FAAwAiAQD//wOxAAD8EUD/DxEAAMBBQAMAsQEA/hFA/wdBA/j/EUD/HxEAAPDRQAcA8QAA4CFB/wDRAv7/sUD/AOEAAMDBQB8AkQEAwFFAAwDhA/z/IUA/ANEBAHDxAID/QUD/B2EOAPAhQP8/EQAA4CFAPwAXZgDfgFFA/wNhDv7/QUAPCGEAAPAhQB8AkQIA+CFA/wERAID/IkD/AP7/wUP/D2+EEUD/ACGAMQDg/zFA/wBhAf7/EUD/AyEAAP8RQIP/IEBRAID/EUABAF+AIEDviCFA/wCAABFA/wMYBgDPhLFBHwAZDABCPQD8fwBCAAD//wEaCABRAwD8EUD/AxsmAOEcwP+xQP8fwQDw/7FA/wdRBADAwUAfAEECAPzBQAEAEQAA/sBAHDgAT6sCwHv/v/8xQn8AEgAA/x8AUQDg/zFCHwCBAAD8EUD/BxIA+P//A9EBAP8hQP8BQQQA4FFAHwAdWACRAv7/QUD/AYEJ8P8hQA8AJYBxAMD/8UD/AIEG/v8hQAMAMAMhQAEAcQP4/xFADwDRAcD/MUD/ABEFAMBxQP9/UQQA/IFAAwABAgDwIUD/H3ET/v8hQP8PHigAEQL4/7FA/wNBBADwcUD/H1ECAPwRQP8HIRYA/sBAkQMA/nFA/wOVmB8KAA+FIEBBGQAcEIAgEABCNvn/rACxAOA/EgAA8B8AIxgA4icAwH8AUQAA4FFAHwAxAPwHYQzg/5BKJDAA0UsBAOEA/P8hQP8fQwAA/wEA/gOiAAD+AwDCEAD/AQCyDwDwHwBiAADqDwCBBvwHJSIAUiF4+AcAQQHw/zFAAQARAID/UUP/D7MAAOC58A6AcUYDAA==

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants