===== Usage ===== To use REST Header Pagination in a project, choose your preferred pagination style (see below). Each time you will have ``envelope`` param available. If you set it to true (or 1), you'll get original behavior of respective DRF's class but the Headers will also be set. HeaderPageNumberPagination =========================== Request:: GET https://api.example.com/accounts/?page=2 Response:: HTTP 200 OK Headers: Link: ; rel="first", ; rel="prev", ; rel="next", ; rel="last" Body: [ { "id": 1, "name": "John Doe", }, ... ] Request:: GET https://api.example.com/accounts/?page=2&envelope=true Response:: HTTP 200 OK Headers: Link: ; rel="first", ; rel="prev", ; rel="next", ; rel="last" Body: { "count": 882, "first": "https://api.example.com/accounts/?envelope=true", "previous": "https://api.example.com/accounts/?page=1&envelope=true", "next": "https://api.example.com/accounts/?page=3&envelope=true", "last": "https://api.example.com/accounts/?page=9&envelope=true", "results": [ { "id": 1, "name": "John Doe", }, ... ] } Setup ----- To enable the LimitOffsetPagination style globally, use the following configuration:: REST_FRAMEWORK = { ... 'DEFAULT_PAGINATION_CLASS': 'hedju.HeaderPageNumberPagination', 'PAGE_SIZE': 100, } HeaderLimitOffsetPagination =========================== Request:: GET https://api.example.com/accounts/?limit=100&offset400 Response:: HTTP 200 OK Headers: Link: ; rel="first", ; rel="prev", ; rel="next", ; rel="last" Body: [ { "id": 1, "name": "John Doe", }, ... ] Request:: GET https://api.example.com/accounts/?limit=100&offset400&envelope=true Response:: HTTP 200 OK Headers: Link: ; rel="first", ; rel="previous", ; rel="next", ; rel="last" Body: { "count": 882, "first": "https://api.example.com/accounts/?limit=100&envelope=true", "previous": "https://api.example.com/accounts/?limit=100&offset=300&envelope=true", "next": "https://api.example.com/accounts/?limit=100&offset=500&envelope=true", "last": "https://api.example.com/accounts/?limit=100&offset=782&envelope=true", "results": [ { "id": 1, "name": "John Doe", }, ... ] } Setup ----- To enable the LimitOffsetPagination style globally, use the following configuration:: REST_FRAMEWORK = { ... 'DEFAULT_PAGINATION_CLASS': 'hedju.HeaderLimitOffsetPagination', 'PAGE_SIZE': 100, # Optional }