Module stac_fastapi.core.extensions.catalogs¶
Catalogs extension.
Variables¶
COLLECTIONS_INDEX
logger
Classes¶
Catalogs¶
class Catalogs(
/,
*args,
**kwargs
)
Catalogs endpoint response.
Similar to Collections but for catalogs.
Ancestors (in MRO)¶
- builtins.dict
Methods¶
clear¶
def clear(
...
)
D.clear() -> None. Remove all items from D.
copy¶
def copy(
...
)
D.copy() -> a shallow copy of D
fromkeys¶
def fromkeys(
iterable,
value=None,
/
)
Create a new dictionary with keys from iterable and values set to value.
get¶
def get(
self,
key,
default=None,
/
)
Return the value for key if key is in the dictionary, else default.
items¶
def items(
...
)
D.items() -> a set-like object providing a view on D's items
keys¶
def keys(
...
)
D.keys() -> a set-like object providing a view on D's keys
pop¶
def pop(
...
)
D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
If the key is not found, return the default if given; otherwise, raise a KeyError.
popitem¶
def popitem(
self,
/
)
Remove and return a (key, value) pair as a 2-tuple.
Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.
setdefault¶
def setdefault(
self,
key,
default=None,
/
)
Insert key with a value of default if key is not in the dictionary.
Return the value for key if key is in the dictionary, else default.
update¶
def update(
...
)
D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
values¶
def values(
...
)
D.values() -> an object providing a view on D's values
CatalogsExtension¶
class CatalogsExtension(
schema_href: Optional[str] = None,
client: stac_fastapi.types.core.BaseCoreClient = None,
settings: dict = NOTHING,
conformance_classes: List[str] = NOTHING,
router: fastapi.routing.APIRouter = NOTHING,
response_class: Type[starlette.responses.Response] = <class 'starlette.responses.JSONResponse'>
)
Catalogs Extension.
The Catalogs extension adds a /catalogs endpoint that returns a list of all catalogs in the database, similar to how /collections returns a list of collections.
Ancestors (in MRO)¶
- stac_fastapi.types.extension.ApiExtension
- abc.ABC
Class variables¶
GET
POST
Methods¶
catalogs¶
def catalogs(
self,
request: starlette.requests.Request,
limit: Optional[int] = Query(10),
token: Optional[str] = Query(None)
) -> stac_fastapi.core.extensions.catalogs.Catalogs
Get all catalogs with pagination support.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| request | None | Request object. | None |
| limit | None | The maximum number of catalogs to return (page size). Defaults to 10. | 10 |
| token | None | Pagination token for the next page of results. | None |
Returns:
| Type | Description |
|---|---|
| None | Catalogs object containing catalogs and pagination links. |
create_catalog¶
def create_catalog(
self,
catalog: stac_fastapi.core.models.Catalog,
request: starlette.requests.Request
) -> stac_fastapi.core.models.Catalog
Create a new catalog.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| catalog | None | The catalog to create. | None |
| request | None | Request object. | None |
Returns:
| Type | Description |
|---|---|
| None | The created catalog. |
create_catalog_collection¶
def create_catalog_collection(
self,
catalog_id: str,
collection: stac_pydantic.collection.Collection,
request: starlette.requests.Request
) -> stac_fastapi.types.stac.Collection
Create a new collection and link it to a specific catalog.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| catalog_id | None | The ID of the catalog to link the collection to. | None |
| collection | None | The collection to create. | None |
| request | None | Request object. | None |
Returns:
| Type | Description |
|---|---|
| None | The created collection. |
Raises:
| Type | Description |
|---|---|
| HTTPException | If the catalog is not found or collection creation fails. |
delete_catalog¶
def delete_catalog(
self,
catalog_id: str,
request: starlette.requests.Request,
cascade: bool = Query(False)
) -> None
Delete a catalog.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| catalog_id | None | The ID of the catalog to delete. | None |
| request | None | Request object. | None |
| cascade | None | If true, delete all collections linked to this catalog. If false, only delete the catalog. |
None |
Returns:
| Type | Description |
|---|---|
| None | None (204 No Content) |
Raises:
| Type | Description |
|---|---|
| HTTPException | If the catalog is not found. |
delete_catalog_collection¶
def delete_catalog_collection(
self,
catalog_id: str,
collection_id: str,
request: starlette.requests.Request
) -> None
Delete a collection from a catalog.
If the collection has multiple parent catalogs, only removes this catalog from the parent_ids. If this is the only parent catalog, deletes the collection entirely.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| catalog_id | None | The ID of the catalog. | None |
| collection_id | None | The ID of the collection. | None |
| request | None | Request object. | None |
Raises:
| Type | Description |
|---|---|
| HTTPException | If the catalog or collection is not found, or if the collection does not belong to the catalog. |
get_catalog¶
def get_catalog(
self,
catalog_id: str,
request: starlette.requests.Request
) -> stac_fastapi.core.models.Catalog
Get a specific catalog by ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| catalog_id | None | The ID of the catalog to retrieve. | None |
| request | None | Request object. | None |
Returns:
| Type | Description |
|---|---|
| None | The requested catalog. |
get_catalog_children¶
def get_catalog_children(
self,
catalog_id: str,
request: starlette.requests.Request,
limit: int = 10,
token: str = None,
type: Optional[str] = Query(None)
) -> Dict[str, Any]
Get all children (Catalogs and Collections) of a specific catalog.
This is a 'Union' endpoint that returns mixed content types.
get_catalog_collection¶
def get_catalog_collection(
self,
catalog_id: str,
collection_id: str,
request: starlette.requests.Request
) -> stac_fastapi.types.stac.Collection
Get a specific collection from a catalog.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| catalog_id | None | The ID of the catalog. | None |
| collection_id | None | The ID of the collection. | None |
| request | None | Request object. | None |
Returns:
| Type | Description |
|---|---|
| None | The requested collection. |
get_catalog_collection_item¶
def get_catalog_collection_item(
self,
catalog_id: str,
collection_id: str,
item_id: str,
request: starlette.requests.Request
) -> stac_fastapi.types.stac.Item
Get a specific item from a collection in a catalog.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| catalog_id | None | The ID of the catalog. | None |
| collection_id | None | The ID of the collection. | None |
| item_id | None | The ID of the item. | None |
| request | None | Request object. | None |
Returns:
| Type | Description |
|---|---|
| None | The requested item. |
get_catalog_collection_items¶
def get_catalog_collection_items(
self,
catalog_id: str,
collection_id: str,
request: starlette.requests.Request,
bbox: Optional[List[float]] = None,
datetime: Optional[str] = None,
limit: Optional[int] = None,
sortby: Optional[str] = None,
filter_expr: Optional[str] = None,
filter_lang: Optional[str] = None,
token: Optional[str] = None,
query: Optional[str] = None,
fields: Optional[List[str]] = None
) -> stac_fastapi.types.stac.ItemCollection
Get items from a collection in a catalog.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| catalog_id | None | The ID of the catalog. | None |
| collection_id | None | The ID of the collection. | None |
| request | None | Request object. | None |
| bbox | None | Optional bounding box filter. | None |
| datetime | None | Optional datetime or interval filter. | None |
| limit | None | Optional page size. | None |
| sortby | None | Optional sort specification. | None |
| filter_expr | None | Optional filter expression. | None |
| filter_lang | None | Optional filter language. | None |
| token | None | Optional pagination token. | None |
| query | None | Optional query string. | None |
| fields | None | Optional fields to include or exclude. | None |
Returns:
| Type | Description |
|---|---|
| None | ItemCollection containing items from the collection. |
get_catalog_collections¶
def get_catalog_collections(
self,
catalog_id: str,
request: starlette.requests.Request
) -> stac_fastapi.types.stac.Collections
Get collections linked from a specific catalog.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| catalog_id | None | The ID of the catalog. | None |
| request | None | Request object. | None |
Returns:
| Type | Description |
|---|---|
| None | Collections object containing collections linked from the catalog. |
get_request_model¶
def get_request_model(
self,
verb: str = 'GET'
) -> Optional[pydantic.main.BaseModel]
Return the request model for the extension.method.
The model can differ based on HTTP verb
register¶
def register(
self,
app: fastapi.applications.FastAPI,
settings=None
) -> None
Register the extension with a FastAPI application.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| app | None | target FastAPI application. | None |
| settings | None | extension settings (unused for now). | None |