Shell layer cursor encoding/decoding for cursor-based pagination.
SIDE EFFECTS:
Cursors are opaque tokens that encode:
Format: Base64(JSON({:id ... :sort-value ... :sort-field ... :sort-direction ...}))
Shell layer cursor encoding/decoding for cursor-based pagination.
SIDE EFFECTS:
- JSON encoding/decoding
- Base64 encoding/decoding
- Exception throwing on invalid cursors
Cursors are opaque tokens that encode:
- Item ID (for stable ordering)
- Sort field value (for comparison)
- Sort direction (asc/desc)
- Optional timestamp (for expiry)
Format: Base64(JSON({:id ... :sort-value ... :sort-field ... :sort-direction ...}))Shell layer RFC 5988 Link header generation for pagination.
RFC 5988: Web Linking https://datatracker.ietf.org/doc/html/rfc5988
SIDE EFFECTS:
Link headers provide hypermedia controls for pagination navigation. They allow clients to discover next, prev, first, and last pages without parsing response bodies.
Format: Link: </api/v1/users?limit=20&offset=20>; rel="next", </api/v1/users?limit=20&offset=0>; rel="first", </api/v1/users?limit=20&offset=980>; rel="last"
Supported Relations:
Shell layer RFC 5988 Link header generation for pagination.
RFC 5988: Web Linking
https://datatracker.ietf.org/doc/html/rfc5988
SIDE EFFECTS:
- String building and URL encoding
- Logging
Link headers provide hypermedia controls for pagination navigation.
They allow clients to discover next, prev, first, and last pages without
parsing response bodies.
Format:
Link: </api/v1/users?limit=20&offset=20>; rel="next",
</api/v1/users?limit=20&offset=0>; rel="first",
</api/v1/users?limit=20&offset=980>; rel="last"
Supported Relations:
- first: First page of results
- last: Last page of results (offset pagination only)
- prev: Previous page
- next: Next page
- self: Current pagecljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |