nasa / cmr-stac

Other
55 stars 21 forks source link

HLS, requesting additional pages returns the first page #353

Closed elidwa closed 3 weeks ago

elidwa commented 1 month ago

A query to cmr-stac:

{"limit": 100, "datetime": "2022-10-01T00:00:00Z/2023-09-30T23:59:59Z", "collections": ["HLSS30.v2.0", "HLSL30.v2.0"], "intersects": {"type": "Polygon", "coordinates": [[[-108.60833333333336, 33.35833333339331], [-108.5416666666667, 33.35833333339331], [-105.55, 35.550000000059974], [-105.50833333333337, 35.583333333393306], [-103.99166666666669, 36.91666666672664], [-103.99166666666669, 44.50000000005997], [-108.4, 47.9833333333933], [-108.425, 48.00000000005996], [-109.35, 48.325000000059966], [-111.13333333333337, 48.950000000059966], [-111.18333333333337, 48.96666666672663], [-111.55833333333337, 49.00000000005996], [-124.55, 49.00000000005996], [-124.65, 48.81666666672663], [-123.81666666666669, 41.74166666672664], [-123.7666666666667, 41.56666666672663], [-123.6, 41.09166666672664], [-123.28333333333336, 40.3833333333933], [-123.15, 40.09166666672664], [-123.1416666666667, 40.07500000005997], [-123.0, 39.833333333393306], [-122.8916666666667, 39.675000000059974], [-122.8416666666667, 39.608333333393304], [-117.075, 34.20000000005997], [-108.60833333333336, 33.35833333339331]]]}}

returns 100 items out of 69853 matched. There are 699 pages to be requested. Requesting pages 2 - 699 always returns page 1 from the initial request. This may be related to #348

For completeness here is a query for page 2 which will return the same results as the query above:

{"limit": 100, "datetime": "2022-10-01T00:00:00Z/2023-09-30T23:59:59Z", "collections": ["HLSS30.v2.0", "HLSL30.v2.0"], "intersects": {"type": "Polygon", "coordinates": [[[-108.60833333333336, 33.35833333339331], [-108.5416666666667, 33.35833333339331], [-105.55, 35.550000000059974], [-105.50833333333337, 35.583333333393306], [-103.99166666666669, 36.91666666672664], [-103.99166666666669, 44.50000000005997], [-108.4, 47.9833333333933], [-108.425, 48.00000000005996], [-109.35, 48.325000000059966], [-111.13333333333337, 48.950000000059966], [-111.18333333333337, 48.96666666672663], [-111.55833333333337, 49.00000000005996], [-124.55, 49.00000000005996], [-124.65, 48.81666666672663], [-123.81666666666669, 41.74166666672664], [-123.7666666666667, 41.56666666672663], [-123.6, 41.09166666672664], [-123.28333333333336, 40.3833333333933], [-123.15, 40.09166666672664], [-123.1416666666667, 40.07500000005997], [-123.0, 39.833333333393306], [-122.8916666666667, 39.675000000059974], [-122.8416666666667, 39.608333333393304], [-117.075, 34.20000000005997], [-108.60833333333336, 33.35833333339331]]]}, "page": 2}

william-valencia commented 1 month ago

Hi Elidwa,

So this version of CMR-STAC does not use page parameter. You would need to use the "next" link from what is returned in the first query. The "next" link would be how you access subsequent results.

Will

mariegitter commented 1 month ago

Hi Will :) Are you planning on reintroducing the page parameter at some point, or will this be the new way going forward?

abbottry commented 1 month ago

@mariegitter using next is widely accepted and much more performant, given this we don't have plans to re-introduce page.

See https://github.com/radiantearth/stac-api-spec/blob/release/v1.0.0/item-search/README.md#pagination for more information. (While they use ?page=x in their examples, its up to the implementation to determine what that url looks like when it gets send to the API, but the goal is that you are able to get the value of the next page from the response, instead of managing the page number manually)