pub struct Root {
pub catalog: Catalog,
pub conformance: Conformance,
}Expand description
The root landing page of a STAC API.
In a STAC API, the root endpoint (Landing Page) has the following characteristics:
- The returned JSON is a STAC Catalog, and provides any number of ‘child’ links to navigate to additional Catalog, Collection, and Item objects.
- The
linksattribute is part of a STAC Catalog, and provides a list of relations to API endpoints. Some of these endpoints can exist on any path (e.g., sub-catalogs) and some have a specified path (e.g.,/search), so the client must inspect therel(relationship) to understand what capabilities are offered at each location. - The
conformsTosection provides the capabilities of this service. This is the field that indicates to clients that this is a STAC API and how to access conformance classes, including this one. The relevant conformance URIs are listed in each part of the API specification. If a conformance URI is listed then the service must implement all of the required capabilities.
Fields§
§catalog: CatalogThe stac::Catalog.
conformance: ConformanceProvides the capabilities of this service.
This is the field that indicates to clients that this is a STAC API and how to access conformance classes, including this one. The relevant conformance URIs are listed in each part of the API specification. If a conformance URI is listed then the service must implement all of the required capabilities.
Note the conformsTo array follows the same structure of the OGC API -
Features declaration of conformance
classes,
except it is part of the landing page instead of in the JSON response
from the /conformance endpoint. This is different from how the OGC API
advertises conformance, as STAC feels it is important for clients to
understand conformance from a single request to the landing page.
Implementers who implement the OGC API - Features and/or STAC API -
Features conformance classes must also implement the /conformance
endpoint.
The scope of the conformance classes declared in the
conformsTo field and the /conformance endpoint are limited to the
STAC API Catalog that declares them. A STAC API Catalog may link to
sub-catalogs within it via child links that declare different
conformance classes. This is useful when an entire catalog cannot be
searched against to support the STAC API - Item Search conformance
class, perhaps because it uses multiple databases to store items, but
sub-catalogs whose items are all in one database can support search.
#[serde(rename = “conformsTo”)]
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Root
impl<'de> Deserialize<'de> for Root
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Root
impl RefUnwindSafe for Root
impl Send for Root
impl Sync for Root
impl Unpin for Root
impl UnsafeUnpin for Root
impl UnwindSafe for Root
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FromJson for Twhere
T: DeserializeOwned,
impl<T> FromJson for Twhere
T: DeserializeOwned,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more