Skip to content

Commit e865306

Browse files
authored
fix: pagination in stac api (#472)
### Issue #473 ### What? / Why? - Pagination was not working due changes made to [Pagination extension ](https://stac-utils.github.io/stac-fastapi/migrations/v3.0.0/#request-models). Updating to use a request model fixed it. ### Testing? https://jtran.delta-backend.com/api/stac/collections/snow-projections-diff-245/items?token=next:snow-projections-diff-245:CSCD_SWE_tavg_ssp245_20770401_percChange.cog
2 parents dd864fd + 36cbef5 commit e865306

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

stac_api/runtime/src/app.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from src.config import TilesApiSettings, api_settings
99
from src.config import extensions as PgStacExtensions
1010
from src.config import get_request_model as GETModel
11+
from src.config import items_get_request_model
1112
from src.config import post_request_model as POSTModel
1213
from src.extension import TiTilerExtension
1314

@@ -74,6 +75,7 @@ async def lifespan(app: FastAPI):
7475
client=VedaCrudClient(post_request_model=POSTModel),
7576
search_get_request_model=GETModel,
7677
search_post_request_model=POSTModel,
78+
items_get_request_model=items_get_request_model,
7779
response_class=ORJSONResponse,
7880
middlewares=[Middleware(CompressionMiddleware), Middleware(ValidationMiddleware)],
7981
router=APIRouter(route_class=LoggerRouteHandler),

stac_api/runtime/src/config.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
from pydantic_settings import BaseSettings, SettingsConfigDict
1212

1313
from fastapi.responses import ORJSONResponse
14-
from stac_fastapi.api.models import create_get_request_model, create_post_request_model
14+
from stac_fastapi.api.models import (
15+
ItemCollectionUri,
16+
create_get_request_model,
17+
create_post_request_model,
18+
create_request_model,
19+
)
1520

1621
# from stac_fastapi.pgstac.extensions import QueryExtension
1722
from stac_fastapi.extensions.core import (
@@ -132,14 +137,22 @@ def TilesApiSettings() -> _TilesApiSettings:
132137
return _TilesApiSettings()
133138

134139

140+
pagination_extension = TokenPaginationExtension()
141+
135142
extensions = [
136143
FieldsExtension(),
137144
FilterExtension(),
138145
QueryExtension(),
139146
SortExtension(),
140-
TokenPaginationExtension(),
147+
pagination_extension,
141148
]
142149

150+
items_get_request_model = create_request_model(
151+
"ItemCollectionURI",
152+
base_model=ItemCollectionUri,
153+
mixins=[pagination_extension.GET],
154+
)
155+
143156
if api_settings.enable_transactions:
144157
extensions.extend(
145158
[

0 commit comments

Comments
 (0)