Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 25 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
# STAC API - Children Extension Specification <!-- omit in toc -->

- [Overview](#overview)
- [Link Relations](#link-relations)
- [Endpoints](#endpoints)
- [Pagination](#pagination)
- [Example](#example)

- [STAC API - Children Extension Specification](#stac-api---children-extension-specification)
- [Overview](#overview)
- [Link Relations](#link-relations)
- [Endpoints](#endpoints)
- [Pagination](#pagination)
- [Deep Traversal & Routing](#deep-traversal--routing)
- [Example](#example)

## Overview

Expand Down Expand Up @@ -70,6 +73,23 @@ the [STAC - Features Collection Pagination section](https://github.com/radiantea
To the greatest extent possible, the catalog should be structured such that all children can be
retrieved from the endpoint in a single call.

## Deep Traversal & Routing

While the primary endpoint is defined at the API Root (`/children`), this extension pattern MAY be applied to any Catalog or Collection resource within the API to enable deep, recursive traversal (similar to a file system).

To inspect the children of a specific sub-resource, clients should append `/children` to the resource's canonical URI.

**Examples:**
* **Root Children:** `GET /children`
* **Sub-Catalog Children:** `GET /catalogs/{id}/children`
* **Collection Children:** `GET /collections/{id}/children` (for "Collection of Collections" hierarchies)

### Filtering by Type
Because the `children` array is polymorphic (containing both `Catalog` and `Collection` objects), implementations SHOULD support a `type` query parameter to allow clients to request a specific resource type.

* `GET /children?type=Catalog`
* `GET /children?type=Collection`

## Example

Below is a minimal example, but captures the essence. Each object in the `children` array
Expand Down