docs: add pagination api

This commit is contained in:
Mohamed Sohail 2022-05-19 16:34:24 +03:00
parent ef60e1b035
commit 642ccdddaa
Signed by: kamikazechaser
GPG Key ID: 7DD45520C01CD85D
1 changed files with 12 additions and 2 deletions

View File

@ -2,8 +2,18 @@
The data warehouse additionally exposes a couple of REST API's (GraphQL planned): The data warehouse additionally exposes a couple of REST API's (GraphQL planned):
1. Dashboard API (`/dashboard`) - Exposes data for [`cic-dashboard`](https://github.com/grassrootseconomics/cic-dashboard). Most data is expected to be chart/table API specific and usually not human readable. 1. Dashboard API (`/dashboard`) - Exposes data for [`cic-dashboard`](https://github.com/grassrootseconomics/cic-dashboard). Most data is expected to be chart/table API specific and usually not human readable.
2. Public API (`/public`) - Exposes public (on-chain only/non-sensitive) data. 2. Public API (`/public`) - Exposes public (on-chain only/non-sensitive) data.
3. Internal API (planned) 3. Internal API (planned)
Each API is domain separated i.e. separate SQL query files and router control. Each API is domain separated i.e. separate SQL query files and router control.
### Pagination
Some API endpoints use a modified cursor pagination. This is to avaoid uncessary full db scans and clientside bloat when paginating data for tables.
The pagination expects the following query string:
- `?per_page=` (int) - No. of items to return. Has a hard limit of 100
- `?forward=` (boolean) - If true, scrolls forward else backwards
- `?cursor=` (id:int) - Used with the forward query. If pagination forwards, pass in the id of the last result i.e. `results[length(results) - 1]`. If paginating backwards pass the id of the first element of the current result set i.e. `results[0]`.