{"html_url": "https://github.com/simonw/datasette/issues/1014#issuecomment-706631006", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1014", "id": 706631006, "node_id": "MDEyOklzc3VlQ29tbWVudDcwNjYzMTAwNg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-10-11T00:36:43Z", "updated_at": "2020-10-11T00:36:43Z", "author_association": "OWNER", "body": "Demo using [paginate-json](https://github.com/simonw/paginate-json):\r\n```\r\n% paginate-json 'https://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array' | jq '. | length' \r\nhttps://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array\r\nhttp://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array&_next=a%2Cd%2Cv\r\nhttp://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array&_next=a%2Ch%2Cr\r\nhttp://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array&_next=a%2Cl%2Cn\r\nhttp://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array&_next=a%2Cp%2Cj\r\nhttp://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array&_next=a%2Ct%2Cf\r\nhttp://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array&_next=a%2Cx%2Cb\r\nhttp://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array&_next=b%2Ca%2Cx\r\nhttp://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array&_next=b%2Ce%2Ct\r\nhttp://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array&_next=b%2Ci%2Cp\r\nhttp://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array&_next=b%2Cm%2Cl\r\n1001\r\n```\r\nNew documentation: https://docs.datasette.io/en/latest/json_api.html#pagination", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 718723543, "label": "Add Link: pagination HTTP headers"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1014#issuecomment-706627035", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1014", "id": 706627035, "node_id": "MDEyOklzc3VlQ29tbWVudDcwNjYyNzAzNQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-10-10T23:50:40Z", "updated_at": "2020-10-10T23:50:40Z", "author_association": "OWNER", "body": "First example page to add this to: `?_shape=array`, e.g. https://latest.datasette.io/fixtures/compound_three_primary_keys.json?_shape=array", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 718723543, "label": "Add Link: pagination HTTP headers"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1014#issuecomment-706626971", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1014", "id": 706626971, "node_id": "MDEyOklzc3VlQ29tbWVudDcwNjYyNjk3MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-10-10T23:49:57Z", "updated_at": "2020-10-10T23:49:57Z", "author_association": "OWNER", "body": "I won't offer a total-number header. That's expensive to calculate - no need to calculate it unless it's explicitly asked for.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 718723543, "label": "Add Link: pagination HTTP headers"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1014#issuecomment-706626934", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1014", "id": 706626934, "node_id": "MDEyOklzc3VlQ29tbWVudDcwNjYyNjkzNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-10-10T23:49:25Z", "updated_at": "2020-10-10T23:49:25Z", "author_association": "OWNER", "body": "I'm just going to implement the 'next' one.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 718723543, "label": "Add Link: pagination HTTP headers"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1014#issuecomment-706626913", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1014", "id": 706626913, "node_id": "MDEyOklzc3VlQ29tbWVudDcwNjYyNjkxMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-10-10T23:49:08Z", "updated_at": "2020-10-10T23:49:08Z", "author_association": "OWNER", "body": "This should be documented on https://docs.datasette.io/en/stable/json_api.html", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 718723543, "label": "Add Link: pagination HTTP headers"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1014#issuecomment-706626796", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1014", "id": 706626796, "node_id": "MDEyOklzc3VlQ29tbWVudDcwNjYyNjc5Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-10-10T23:47:23Z", "updated_at": "2020-10-10T23:48:26Z", "author_association": "OWNER", "body": "The GitHub API has these:\r\n\r\n`link: ; rel=\"next\", ; rel=\"last\"`\r\n\r\nWordPress API: https://css-tricks.com/wp-json/wp/v2/posts\r\n\r\n`link: ; rel=\"next\"`\r\n\r\nIt also has these:\r\n\r\n```\r\nx-wp-total: 5162\r\nx-wp-totalpages: 517\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 718723543, "label": "Add Link: pagination HTTP headers"}, "performed_via_github_app": null}