Client

Struct Client 

Source
pub struct Client { /* private fields */ }
Expand description

An async client for a STAC API.

This client provides methods for interacting with a STAC-compliant API, allowing you to fetch Catalog, Collection, and Item objects, and to perform searches.

The client is inexpensive to clone, as it wraps its internal state in an Arc.

Implementations§

Source§

impl Client

Source

pub fn new(base_url: &str) -> Result<Self>

Creates a new Client for a given STAC API base URL.

§Arguments
  • base_url - The base URL of the STAC API (e.g., "https://planetarycomputer.microsoft.com/api/stac/v1").
§Errors

Returns an Error::Url if the provided base_url is not a valid URL.

Source

pub fn with_client(base_url: &str, client: Client) -> Result<Self>

Creates a new Client from an existing reqwest::Client.

This allows for customization of the underlying HTTP client, such as setting default headers, proxies, or timeouts.

§Errors

Returns an Error::Url if the provided base_url is not a valid URL.

Source

pub fn base_url(&self) -> &Url

Returns the base URL of the STAC API.

Source

pub async fn get_catalog(&self) -> Result<Catalog>

Fetches the root Catalog or Collection from the API.

§Errors

Returns an Error if the request fails or the response cannot be parsed.

Source

pub async fn get_collections(&self) -> Result<Vec<Collection>>

Fetches all Collection objects from the /collections endpoint.

§Errors

Returns an Error if the request fails or the response cannot be parsed.

Source

pub async fn get_collection(&self, collection_id: &str) -> Result<Collection>

Fetches a single Collection by its ID from the /collections/{collection_id} endpoint.

§Errors

Returns an Error if the request fails or the response cannot be parsed.

Source

pub async fn get_collection_items( &self, collection_id: &str, limit: Option<u32>, ) -> Result<ItemCollection>

Fetches an ItemCollection of Item objects from a specific collection.

This method retrieves items from the /collections/{collection_id}/items endpoint. Note that this retrieves only a single page of items; the limit parameter can be used to control the page size.

§Errors

Returns an Error if the request fails or the response cannot be parsed.

Source

pub async fn get_item(&self, collection_id: &str, item_id: &str) -> Result<Item>

Fetches a single Item by its collection ID and item ID.

§Errors

Returns an Error if the request fails or the response cannot be parsed.

Source

pub async fn search(&self, params: &SearchParams) -> Result<ItemCollection>

Searches for Item objects using the POST /search endpoint.

This is the preferred method for searching, as it supports complex queries that may be too long for a GET request’s URL.

§Errors

Returns an Error if the request fails or the response cannot be parsed.

Source

pub async fn search_get(&self, params: &SearchParams) -> Result<ItemCollection>

Searches for Item objects using the GET /search endpoint.

The SearchParams are converted into URL query parameters.

§Errors

Returns an Error if the request fails or the response cannot be parsed.

Source

pub async fn conformance(&self) -> Result<&Conformance>

Fetches the API’s conformance classes from the /conformance endpoint.

The result is cached, so subsequent calls will not make a new network request.

§Errors

Returns an Error if the request fails or the response cannot be parsed.

Source

pub async fn download_asset(&self, asset: &Asset) -> Result<DownloadedAsset>

Downloads a STAC Asset into memory.

This method fetches the asset’s data from its href URL and returns a DownloadedAsset containing the raw bytes. It reuses the client’s authentication and resilience settings.

§Arguments
  • asset - A reference to the Asset to be downloaded.
§Errors

Returns an Error if the href is not a valid URL, the request fails, or the response body cannot be read.

Trait Implementations§

Source§

impl Clone for Client

Source§

fn clone(&self) -> Client

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Client

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Client

§

impl !RefUnwindSafe for Client

§

impl Send for Client

§

impl Sync for Client

§

impl Unpin for Client

§

impl !UnwindSafe for Client

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,